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。
来自: http://hi.baidu.com/ls%5Fmcx/blog/item/d63cb9377ae836d7a3cc2bed.html
分享到:
相关推荐
11. **Flex应用程序生命周期**:从初始化到销毁,Flex应用程序会经历多个阶段,理解这些阶段对于优化性能和资源管理至关重要。 12. **错误和异常处理**:学习如何正确处理程序运行时的错误和异常,是编写健壮Flex...
2. **Flex Component Lifecycle**: 每个Flex组件都有自己的生命周期,包括创建、初始化、显示、尺寸改变和销毁等阶段,理解这些阶段对于优化性能和处理用户交互至关重要。 3. **MXML**: MXML语法类似于XML,可以...
综上所述,"基于S32KDS平台SDK3.0编写的flexcan组件can fd测试例程"涵盖了FlexCAN模块的配置、初始化、数据传输、错误处理等多个方面,是学习和评估S32K微控制器在CAN FD通信能力上的理想实践。通过运行和分析这个...
8. **Flex应用程序生命周期**: 了解Flex组件的创建、初始化、显示和销毁过程对于优化性能和管理内存至关重要。 9. **Flex模块化开发**: Flex支持模块化,允许将大型应用程序分解为可独立加载的单元,从而改善加载...
8. **组件生命周期**: Flex组件有自己的生命周期,包括创建、初始化、显示、隐藏和销毁等阶段。理解这个生命周期对于优化性能和解决问题至关重要。 9. **BlazeDS**: BlazeDS是Flex与Java服务器之间通信的中间件,...
9. **Flex应用生命周期**:一个Flex应用有四个主要阶段:初始化、构造、显示和销毁。了解这些阶段有助于优化应用性能和资源管理。 10. **调试和测试**:Flex Builder提供了强大的调试工具,包括断点、变量监视、...
11. **Flex应用生命周期**:从初始化、渲染到运行和销毁,了解Flex应用的生命周期对于优化性能和管理资源至关重要。 12. **Flex最佳实践**:包括代码组织、性能优化、错误处理、调试技巧等方面的知识,有助于提升...
4. **模块生命周期**:Flex模块有其特定的生命周期,包括加载、初始化、显示和卸载阶段。开发者需要理解这些阶段,以便正确处理模块的加载事件和状态变化。 5. **模块间的通信**:Flex模块可以通过事件、回调函数、...
在Flex项目开发中,"Configurator"可能是一个配置管理器或者设置工具,它可能是整个应用的核心部分,负责处理应用程序的配置、设置和初始化工作。在Flash Builder中,你可以直接加载此项目源码,利用IDE的集成开发...
2. 动态加载:Flex 4支持在运行时动态加载资源包,这样可以减少初始加载时间,只加载用户需要的语言版本。 3. 多语言皮肤:除了文本资源外,Flex 4还允许我们为不同的语言创建特定的皮肤,以适应不同文化背景的视觉...
8. **Flex应用程序生命周期**:理解Flex组件的创建、初始化和销毁过程对于优化性能和管理资源非常重要。 9. **调试和测试**:学习如何使用Flash Builder的内置调试工具,如断点、变量查看器和性能分析器,可以帮助...
9. **Flex应用程序生命周期**:从初始化、创建、显示到销毁,Flex应用有明确的生命周期管理,理解这一过程对于优化性能和资源使用至关重要。 10. **移动支持**:虽然Flex 3.0主要针对桌面浏览器,但通过Adobe AIR,...
7. **国际化和本地化**:Flex API也会包含有关如何支持不同语言和文化设置的信息,这对于开发全球化的应用程序至关重要。 8. **错误和异常处理**:在开发过程中,错误处理是必不可少的。API将阐述Flex中的错误对象...
6. **状态管理**:Flex应用可以有多个状态,如初始状态、编辑状态等,开发者可以为每个状态定义不同的界面布局和行为。 7. **模块化开发**:Flex支持模块化,允许将大型应用拆分为多个独立的模块,提高加载速度和...
6. **Flex Component Lifecycle**:理解组件的生命周期,如初始化、测量、布局和绘制阶段,对于优化性能至关重要。 7. **数据绑定**:Flex支持数据绑定,能自动同步UI组件和后台数据模型,简化开发。 8. **States...
9. **Flex应用生命周期**:了解Flex组件的创建、初始化和销毁过程,这对于优化应用性能和管理资源至关重要。 这个教学视频的第一部分很可能是打下坚实基础的阶段,确保初学者对Flex的基本架构和开发流程有清晰的...
在这个“flex第一步”源码中,你可能会看到如何设置Flex项目的结构,如何在MXML文件中创建基本的UI元素,如何用ActionScript编写初始化和交互逻辑,以及如何使用Flex的组件库。这包括了创建一个简单的Flex应用的基本...
10. **Flex应用程序生命周期**:从初始化到销毁,了解Flex组件的生命周期有助于优化性能和内存管理。 11. **调试和测试**:Flex Builder提供了强大的调试工具,包括断点、变量查看、调用堆栈等。学会使用这些工具对...
- **Flex的应用程序生命周期**:从初始化到运行、暂停、恢复和终止的各个阶段,理解这些阶段有助于优化应用性能。 - **数据服务集成**:Flex可以轻松连接到各种后端数据源,如AMF、Web服务、HTTP服务等,实现数据的...
9. **模块化开发**:Flex 2支持模块化,可以将大型应用程序拆分为独立的模块,按需加载,减少启动时间和内存占用。 10. **调试和测试**:Flex Builder IDE提供了强大的调试工具,可以跟踪ActionScript代码执行,...