From:http://blog.csdn.net/dante_k7/archive/2009/06/18/4275381.aspx FLEX组件在建立的时候都会经历四个事件:preinitialize , initialize , creationComplete 和 updateComplete(updateComplete事件在任何改动视觉的情况下都会发生,不是初始化时独有的)。
下面的例子检测在嵌套和平行的情况下,各个组件的事件抛出顺序。
- <?xml version="1.0" encoding="utf-8"?>
- <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
- preinitialize="showEvent(event)"
- initialize="showEvent(event)"
- creationComplete="showEvent(event)"
- updateComplete="showEvent(event)">
-
- <mx:script>
- <!--[CDATA[
- import flash.utils.getTimer;
- private function showEvent(event:Event):void {
- trace(flash.utils.getTimer().toString()+" >> "+event.currentTarget.name+" "+event.type);
- }
- ]]-->
- </mx:script>
-
- <mx:Canvas id="canv1"
- preinitialize="showEvent(event)"
- initialize="showEvent(event)"
- creationComplete="showEvent(event)"
- updateComplete="showEvent(event)">
-
- <mx:Button id="btn1"
- preinitialize="showEvent(event)"
- initialize="showEvent(event)"
- creationComplete="showEvent(event)"
- updateComplete="showEvent(event)"/>
- </mx:Canvas>
-
- <mx:Button id="btn2"
- preinitialize="showEvent(event)"
- initialize="showEvent(event)"
- creationComplete="showEvent(event)"
- updateComplete="showEvent(event)"/>
-
- </mx:Application>
复制代码
上面的例子输出顺序是:
1299 >> eventTest0 preinitialize
1307 >> canv1 preinitialize
1310 >> btn1 preinitialize
1318 >> btn1 initialize
1319 >> canv1 initialize
1320 >> btn2 preinitialize
1321 >> btn2 initialize
1321 >> eventTest0 initialize
[SWF] G:\projects\eventTest\bin-debug\eventTest.swf - 588,818 bytes after decompression
1387 >> btn1 creationComplete
1387 >> btn1 updateComplete
1387 >> canv1 creationComplete
1387 >> canv1 updateComplete
1388 >> btn2 creationComplete
1388 >> btn2 updateComplete
1388 >> eventTest0 creationComplete
1390 >> eventTest0 updateComplete
看着有点混乱,不过仔细看看,可以把过程分成两个部分。
很明显,所有的creationComplete和updateComplete发生在第二次update的时候,之前flex组件只是做一些设置和计算的工作,并没有在画布上画任何东西。除此之外,还有这么一些规律:
* 就单个组件而言,事件的抛出顺序是preinitialize,initialize,creationComplete * 嵌套关系的两个组件(比如Canvas和button1),preinitialize先外后内,initialize和creationComplete先内后外。只是creationComplete要在下一次update才会发生。 * 平行关系的两个组件(比如Canvas和button2),按mxml内的顺序,只有前面组件initialize结束后,后面的组件才会抛出preinitialize。
|
分享到:
相关推荐
NULL 博文链接:https://raymondhekk.iteye.com/blog/371940
修改枯燥的flex默认的初始化页面。个性的进度条,个性的logo
Flex启动与初始化Flex启动与初始化Flex启动与初始化
深入讲解flex启动化调用的类,启动原理
flex 入门介绍 flex 如何结合 j2ee 开发应用程序以及 flex 的国际化等
Flex 代码格式化Flex 代码格式化Flex 代码格式化Flex 代码格式化Flex 代码格式化Flex 代码格式化Flex 代码格式化Flex 代码格式化Flex 代码格式化Flex 代码格式化Flex 代码格式化Flex 代码格式化Flex 代码格式化Flex ...
介绍 Flex 项目 国际化的 具体方法
Flex格式化代码工具 安装步骤参考readme.txt
flex格式化插件,flex格式化插件,flex格式化插件
flex 国际化 可运行 资源文件 成功运行 flex4
flex json,flex与java进行数据交互是json的相互转化
实现flex4窗体最大化 最小话 和关闭功能
flex 汉字转拼音
前些天在写一个自定义的UI组件的时候,发现在override createChildren的,只能取到基本类型的自定义变量,而取不到Object类型的自定义变量。
Flex自定义组件,带最大化、最小化、还原及关闭按钮。
flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图...
深入浅出Flex_Viewer.pdf
Flex开发的,照片查看器,很好 看,与大家共享下
FLEX特效FLEX特效FLEX特效FLEX特效 FLEX特效FLEX特效FLEX特效FLEX特效 FLEX特效FLEX特效FLEX特效FLEX特效 FLEX特效FLEX特效FLEX特效FLEX特效