在FLEX中,我們經常會用到,當容器或者這個組件初始化的時候,或者創建完成的時候,就去做一些事情。
那麼此時Flex就會派發preinitialize、initialize和creationComplete事件。當子項初始化完成後,其父容器開始初始化。即子項總是先於父容器初始化完成。然而,只有當所有子項的父容器都初始化完成後,子項纔開始派發creationComplete事件。
Flex的Preinitialize(預初始化)、Initialize(初始化)、CreationComplete創建完成事件
代碼如下:
<?xml version="1.0" encoding="utf-8"?>
<s:Panel xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
width="100%" height="100%"
initialize="panel1_initializeHandler(event)"
creationComplete="panel1_creationCompleteHandler(event)"
title="{ModelLocator.getInstance().baseDatApplyTitle}"
preinitialize="panel1_preinitializeHandler(event)"
xmlns:utils="com.tiamaes.utils.*"
minHeight="500"
minWidth="700"
updateComplete="panel1_updateCompleteHandler(event)"
>
//initialize 執行順序 2
protected function panel1_initializeHandler(event:FlexEvent):void
{
// TODO Auto-generated method stub 1 查詢出來這個值
cityNameString=UserSession.getCurrentAccount().cityName;
yearStr=applyYear.text;
cityCode = UserSession.getCurrentAccount().cityCode;
token = dataApplyProxy.querySavedDataBaseList("2013-6-30 10:15:58",cityCode);
FlexUtil.addResponder(token,baseDataResult,baseDataFault);
}
//creationComplete 執行順序 3
protected function panel1_creationCompleteHandler(event:FlexEvent):void
{
// TODO Auto-generated method stub
trace(tempValueArr);
trace(tempValueArr);
}
//preinitialize 執行順序 1
protected function panel1_preinitializeHandler(event:FlexEvent):void
{
// TODO Auto-generated method stub
trace(tempValueArr);
trace(tempValueArr);
}
//updateComplete 執行順序 4
protected function panel1_updateCompleteHandler(event:FlexEvent):void
{
// TODO Auto-generated method stub
trace(tempValueArr);
trace(tempValueArr);
}
對於單個組件來說,事件的執行順序就是:preinitialize,initialize,creationComplete,updateComplete
如果2個組件相互嵌套,那行執行順序就是:preinitialize先外後內,initialize和creationComplete,updateComplete先內後外。
如果2個組件是相互平行的關係,那行執行順序就是:前面組件initialize結束後,後面的組件纔會拋出preinitialize
<結束!>