PDA

Просмотр полной версии : Почему свойство stage = null, когда произошло событие creationComplete


AntonAL
15.10.2009, 13:38
Есть скин для компоненна, для которого я обрабатываю событие creationComplete.

В обработчике пишу:

protected function sparkskin1_creationCompleteHandler(event:FlexEvent):void
{
this.stage.addEventListener(MouseEvent.MOUSE_MOVE, this.sparkskin1_mouseMoveHandler );
}


Возникает ошибка, говорящая, что stage = null.

В документации сказано:
creationComplete - Dispatched when the component has finished its construction, property processing, measuring, layout, and drawing.

Если он закончил даже drawing, то почему-же тогда он не добавлен в stage ?? Или здесь предполагается, что он рисуется сначала в какой-нибудь внутренний буфер ?

Да, есть событие addedToStage, ... но хотелось бы разобраться с creationComplete ... не совсем мне понятно, что тогда является инициатором данного события.

Senretsu
15.10.2009, 17:50
Application работает немного по-другому чем обычный класс, отнаследованный от UIComponent. Он диспатчит событие CREATION_COMPLETE когда еще он не добавлен на сцену, чтобы избежать лишних перерисовок. После этого SystemManager убивает прелоадер и добавляет Application в себя. Далее у Application появляется stage и тогда он диспатчит событие APPLICATION_COMPLETE.