Я в замешательстве по поводу порядка событий systen.Согласно книге, событие childAdd родительского контейнера должно запускаться после запуска событий PreInitialize и Initialize дочернего объекта, в то время как в соответствии с выходом программы это выглядит иначе.Пожалуйста, помогите.
В книгах я нашел следующее:
\ Container ---------- Компонент
Preinitialize
------------------ Преинициализировать
------------------ Проинициализировать
childAdd
Инициализировать
------------------ creationComplete
------------------ updateComplete
creationComplete
updateComplete
===========================================================================================
В то время как я попробовал себя, как показано нижеЭто операторы трассировки, которые были напечатаны в соответствующих обработчиках событий.
Преинициализировать в приложении
CreateChildren в приложении
---------------- Конструктор MyContainer
childДобавить в приложение
---------------- PreInitialize MyContainer
---------------- CreateChildren MyContainer
-------------------------------- Конструктор ChildContainer
---------------- childAdd MyContainer
------------------------------- PreInitialize ChildContainer
------------------------------- CreateChildren ChildContainer
------------------------------- Инициализировать ChildContainer
---------------- Инициализируйте MyContainer
Пожалуйста, найдите код ниже:
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"
xmlns:local= "*" childAdd="handleChildAddApp()" initialize="handleInitializeApp)"
preinitialize="handlePreinitializeApp()">
<local:MyClass id="MyContainer" preinitialize="handlePreinitializeOuter()" childAdd="handleChildAddOuter()" initialize="handleInitializeOuter()" title="Outer">
<local:MyPanel id="ChildContainer" preinitialize="handlePreinitializeInner()" initialize="handleInitializeInner()" />
</local:MyClass>
<mx:Script>
<![CDATA[
public function handlePreinitializeApp():void {
trace('Preinitialize in Application');
}
override protected function createChildren():void {
trace( "CreateChildren in Application" );
super.createChildren();
}
public function handleChildAddApp():void{
trace('childAdd in Application');
}
public function handleInitializeApp():void{
trace('Initialize Application');
}
public function handleCreationCompleteApp():void{
trace('CreateChildren in Application');
}
public function handlePreinitializeOuter():void{
trace('PreInitialize MyContainer');
}
public function handleChildAddOuter():void{
trace('childAdd MyContainer');
}
public function handleInitializeOuter():void{
trace('Initialize MyContainer');
}
public function handlePreinitializeInner():void{
trace('PreInitialize ChildContainer');
}
public function handleInitializeInner():void{
trace('Initialize ChildContainer');
}
]]>
</mx:Script>
Спасибозаранее.