Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Вызов класса (http://www.flasher.ru/forum/showthread.php?t=142650)

greenhill 27.07.2010 14:53

Вызов класса
 
Здравствуйте, простите за примитивный вопрос, но не могу справится пока
У меня есть consructor.fla
В библиотеке есть мувик Selector, экспортирован в экшн скрипт.
и есть Selector.as в папке as.
как мне проинклудить его в фла, чтоб работал скрипт из Selector.as
у меня еще несколько отдельных as файлов будет, как вызывать из друг из друга?

Хемуль 27.07.2010 14:57

2 greenhill:
Цитата:

как мне проинклудить его в фла, чтоб работал скрипт из Selector.as
Задать ему в свойствах Selector в качестве Base class. Ну, в смысле, не просто Selector, а полностью, со структурой пакетов типа: com.myDomain.myProject.Selector. Это в том случае, если у вас есть эти самые пакеты.

Цитата:

у меня еще несколько отдельных as файлов будет, как вызывать из друг из друга?
Это не сильно понятный вопрос.

greenhill 27.07.2010 15:01

ну скажем один класс у меня описывает парснг xml, а второй создает спрайты и загружает туда изображения и отображает их.
как мне в том файле, где парсинг, вызвать класс, который создает спрайты и отображает картинки?

Хемуль 27.07.2010 15:04

2 greenhill:
Вам нужно создать экземпляр этого класса. Ну или не создавать, если класс статический.
Почитайте про include.

greenhill 27.07.2010 15:18

Цитата:

Задать ему в свойствах Selector в качестве Base class. Ну, в смысле, не просто Selector, а полностью, со структурой пакетов типа: com.myDomain.myProject.Selector. Это в том случае, если у вас есть эти самые пакеты.
у меня все локально и там нет ни com ни myDomain, просто папка с проектом и вложенными папками

Zebestov 27.07.2010 15:41

Допустим у тебя есть папка с проектом. В ней же лежит файл something.fla. В ней же лежит папка /as, в которой просто лежат все твои *.as файлы.

1. Указываешь Flash-у, что все *.as файлы у тебя хранятся в папке /as:
File > Publish Settings... > вкладка Flash > Script: ActionScript 3.0 Settings... > вкладка Source path > /as

2. В качестве основного класса своего swf создаешь некий as/Main.as и прописываешь его в Flash:
окно Properties > свиток PUBLISH > Class: пишешь Main.as

Дальше все по аналогии. Создаешь свой as/Selector.as и в библиотеке своему мувику правой кнопкой мыши:
Properties... + галочка Export for ActionScript + Base Class: указываешь Selector.as

Добавлено через 5 минут
А ну и главное — оперируй вертикально вниз... т.е. твой мувик Selector должен иметь имя, например, selector и обращайся к нему из Main.as:

Код AS3:

...
this.selector.someMethod();
...


greenhill 28.07.2010 13:04

спасибо огромное, Zebestov, за подробный ответ!

Добавлено через 2 часа 34 минуты
Еще вопрос:
Есть главный класс, в нем я создаю экземпляр класса AddImages, он рабочий, парсит XMl и выводит изображения.
Экземпляр создан, компилит без ошибок, но почему-то не отображается на экране. Может там не достаточно просто написать
Код AS3:

addChild(preview_list_block);

?

Zebestov 28.07.2010 15:46

хм. без кода никаких вариантов. я даже не знаю, что такое preview_list_block

greenhill 28.07.2010 15:52

Код AS3:

package{
 
        import flash.display.*;
 
 
        public class Main extends Sprite{
 
                public function Main(){
 
                        var myImageLoader:AddImages = new AddImages(); // Создаем экземпляр класса AddImages
 
                        myImageLoader.traceImageLoader = function(){
                                trace(myImageLoader.publicTest)// Yo!!!
                        }
                        myImageLoader.traceImageLoader();
 
                }
 
        }
 
}

Код AS3:

package {
        import flash.events.*;
        import flash.net.*;
        import flash.display.*;
 
 
        dynamic class AddImages extends Sprite{
 
                public var publicTest:String = "Yo!!!";
 
                public var xmlURL:String = "xml/images.xml";
                public var xmlData:XML;
                public var urlLoader:URLLoader;
                public var previewArray:Array = new Array();
                public var imageArray:Array = new Array();
 
                public var preview_list_block:Sprite = new Sprite();
 
                public var preview_blocks:Array = new Array();
                public var loader:Loader;
                public var imageLoader:Loader;
 
 
                public function AddImages(){
 
                        addChild(preview_list_block); // Не отображается, далее в этот контейнер грузятся изображения
 
 
                        parseXML();
 
                } ....


Zebestov 28.07.2010 16:00

опуская прочие вопросы, спрошу по существу:

1. ты подготовился к загрузке XML — а где ты его таки загружаешь?
2. ты подготовился к загрузке, как я понимаю, картинок — а где сама загрузка?

я так понимаю, все скрыто под неочевидным parseXML() — давай и его сюда.


Часовой пояс GMT +4, время: 00:27.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.