Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   addedToStage перед конструктором (http://www.flasher.ru/forum/showthread.php?t=177659)

rs7 05.04.2012 14:25

addedToStage перед конструктором
 
Внезапно возник вопрос в голове :rolleyes:

Есть обще употребляемая конструкция

Код AS3:

public function Constructor() {
        if (stage) init();
        else addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler);
}
 
private function addedToStageHandler(event:Event):void {
        removeEventListener(Event.ADDED_TO_STAGE, addedToStageHandler);
        init();
}

В какой ситуации возможно создание объекта уже добавленного на сцену? :)

toFL 05.04.2012 14:31

Когда-то давно была на эту тему "holy war".
Ни к чему определенному это не привело.
Кто-то говорил, что это бессмысленно, кто-то - что так нужно делать по уму (типа на всякий случай).

Inet_PC 05.04.2012 14:36

Конструктор (т.к. это не настоящий конструктор) главного класса выполняется уже после добавления на стейдж.

BuKT 05.04.2012 14:36

А можно глянуть пример добавления на сцену неинстанцированного объекта?

Aquahawk 05.04.2012 14:43

Цитата:

В какой ситуации возможно создание объекта уже добавленного на сцену?
В нескольких случаях. Обычно когда это документ класс. В его конструкторе сразу, при запуске дотупен stage, однако потом ещё придёт событие AddedToStage. Мне кажется это баг. Лучше бы стейдж всегда был нулём пока не добавили. Ещё аналогичная ситуация произойдёт если это конструктор объект при помощи IDE размещён на первом кадре сцены.

Добавлено через 1 минуту
BuKT В Ide на первый кадр брось, да посмотри в конструкторе, stage доступен. И parent скорее всего тоже уже есть.


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

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