在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

<结束!>




Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐