Проверьте компонент initilaze, прежде чем добавлять события в actionscript 3 - PullRequest
0 голосов
/ 31 января 2009

Как я могу проверить компонент (переместить клип или кнопку) isInitilazed перед тем, как добавить событие (отпустить или щелкнуть) для него в ActionScript 3?

Ответы [ 2 ]

1 голос
/ 01 февраля 2009

Могу ли я спросить, что вы пытаетесь сделать, в более общих чертах?

Если вы просто хотите избежать ошибок нулевой ссылки, просто проверьте ссылку (переменную), которую вы используете для null:

if (_myComponent != null)
{
    // add listeners
}

Если по какой-то другой причине вам действительно необходимо знать, был ли компонент инициализирован, прежде чем вы это сделаете, он необходим для отправки какого-либо события для этого (UIComponents dispatch FlexEvent.INITIALIZE событий Flex, но я полагаю, что вы вы не используете Flex) или, в качестве альтернативы, устанавливаете «инициализированное» свойство, что я не совсем уверен, что стандартные компоненты Flash делают (я обращаюсь к Button документации для справки здесь.) Вы Конечно, можно создать пользовательский подкласс того компонента, который вы используете для себя, где вы реализуете свойство initialized, но я не уверен, как вы могли бы реализовать это для любого из стандартных компонентов Flash. Я также не совсем уверен, что вы подразумеваете под "инициализацией" в этом контексте:)

0 голосов
/ 29 декабря 2009

Может как то так?

if (mcWithComponents.stage) doStuff();
mcWithComponents.addEventListener(Event.ADDED_TO_STAGE, doStuff);

private function doStuff(e:Event = null):void
{
    mcWithComponents.myButton.addEventListener(MouseEvent.CLICK, buttonClicked);
}

Или добавьте слушателя прямо в класс мувиклипа.

public function mcWithComponents() // constructor
{
    if (stage) init();
    addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
  myButton.addEventListener(MouseEvent.CLICK, buttonClicked);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...