Управление компонентами библиотеки Flash Professional в файле .as - PullRequest
0 голосов
/ 25 октября 2010

Я пытаюсь контролировать поведение компонентов в моей Flash-библиотеке с помощью класса файлов .as, но, похоже, он не работает.

Например, если у меня есть кнопка в моембиблиотека с именем exampleBtn и попытка сделать это в файле .as:

exampleBtn.visible = false;

... ничего не происходит.Кнопка все еще видна в моем приложении, когда я ее запускаю.

Может ли кто-нибудь объяснить, как сделать компонент библиотеки Flash доступным в файле класса .as с помощью Flash CS5?Спасибо.

1 Ответ

1 голос
/ 25 октября 2010

вам нужно дать имена экземпляров ваших активов, чтобы контролировать их. на своем этапе выберите свой экземпляр exampleBtn и дайте ему имя «exampleBtn» на панели свойств. однако для повторного использования лучше дать вашим экземплярам имя, отличное от имени его класса.

Другая причина этой проблемы - то, что ваш файл класса документа не вызывается вашим .fla. выберите этап и введите имя класса документа на панели свойств.

пример: ваш файл класса документа называется DocumentClass.as, поэтому вы вводите «DocumentClass» в поле класса на панели свойств. если DocumentClass.as находится в папке с именем Classes, которая находится в том же каталоге, что и ваш .fla, класс, указанный на панели свойств, будет «Classes.DocumentClass», а заголовок вашего пакета .as будет «пакетными классами» вместо просто "пакет"

перед отладкой убедитесь, что файл класса документа сохранен и находится в соответствующем месте.

наконец, проблема может возникнуть просто потому, что ваша стадия не инициализирована, пока вы вызываете свои активы. для этого необходимо добавить прослушиватель событий ADDED_TO_STAGE, который затем вызывает ваши ресурсы.

package Classes
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent; //import MouseEvent

public class DocumentClass extends Sprite
    {
    public function DocumentClass()
        {
        addEventListener(Event.ADDED_TO_STAGE, init);
        }

    private function init(evt:Event):void
        {
        removeEventListener(Event.ADDED_TO_STAGE, init);
        //exampleButton.visible = false;
        exampleButton.addEventListener(MouseEvent.CLICK, clickEventHandler);
        }

    private function clickEventHandler(evt:MouseEvent):void
        {
        trace(evt.currentTarget.name + " Clicked.  Event Details: " + evt);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...