`

flex初始化时的事件测试

    博客分类:
  • Flex
阅读更多
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。
分享到:
评论

相关推荐

    基于S32KDS平台SDK3.0编写的flexcan组件can fd测试例程

    综上所述,"基于S32KDS平台SDK3.0编写的flexcan组件can fd测试例程"涵盖了FlexCAN模块的配置、初始化、数据传输、错误处理等多个方面,是学习和评估S32K微控制器在CAN FD通信能力上的理想实践。通过运行和分析这个...

    FLEX国际化

    2. 动态加载:Flex 4支持在运行时动态加载资源包,这样可以减少初始加载时间,只加载用户需要的语言版本。 3. 多语言皮肤:除了文本资源外,Flex 4还允许我们为不同的语言创建特定的皮肤,以适应不同文化背景的视觉...

    flex的一个打印测试

    接下来,可以使用`beginPrint()`方法初始化打印作业,接着使用`print() `方法将要打印的显示对象转换为位图,最后通过`addPage()`方法添加到打印作业中。完成所有页面后,调用`endPrint()`结束打印作业,最后调用`...

    flex 模块化modules源码例子

    4. **模块生命周期**:Flex模块有其特定的生命周期,包括加载、初始化、显示和卸载阶段。开发者需要理解这些阶段,以便正确处理模块的加载事件和状态变化。 5. **模块间的通信**:Flex模块可以通过事件、回调函数、...

    flex项目源码(本人亲自测试可用)

    在Flex项目开发中,"Configurator"可能是一个配置管理器或者设置工具,它可能是整个应用的核心部分,负责处理应用程序的配置、设置和初始化工作。在Flash Builder中,你可以直接加载此项目源码,利用IDE的集成开发...

    flex例子.flex源程序

    2. **Flex Component Lifecycle**: 每个Flex组件都有自己的生命周期,包括创建、初始化、显示、尺寸改变和销毁等阶段,理解这些阶段对于优化性能和处理用户交互至关重要。 3. **MXML**: MXML语法类似于XML,可以...

    Flex中文帮助文档

    11. **Flex应用程序生命周期**:从初始化到销毁,Flex应用程序会经历多个阶段,理解这些阶段对于优化性能和资源管理至关重要。 12. **错误和异常处理**:学习如何正确处理程序运行时的错误和异常,是编写健壮Flex...

    flex3

    8. **组件生命周期**: Flex组件有自己的生命周期,包括创建、初始化、显示、隐藏和销毁等阶段。理解这个生命周期对于优化性能和解决问题至关重要。 9. **BlazeDS**: BlazeDS是Flex与Java服务器之间通信的中间件,...

    flex 模块化 modules文档

    在Flex框架中,模块化设计是一种非常重要的开发模式,它允许开发者将大型应用分解为多个独立的小型组件,这些组件可以在需要时动态加载到主应用中。通过这种方式,可以显著减少初始SWF文件的大小,并缩短加载时间。 ...

    Flex3学习指南-是初学者学习Flex必备资料2

    8. **Flex应用程序生命周期**: 了解Flex组件的创建、初始化、显示和销毁过程对于优化性能和管理内存至关重要。 9. **Flex模块化开发**: Flex支持模块化,允许将大型应用程序分解为可独立加载的单元,从而改善加载...

    flex组件,功能强大的下拉框

    4. **初始化显示已选择项** 当页面加载时,该组件能够自动显示之前用户已选择的选项,这提高了用户体验,因为他们无需再次手动设置。这种功能通常是通过存储和恢复用户偏好来实现的,可能涉及到本地存储或服务器端...

    FlexCode

    7. **Flex应用生命周期**:理解Flex应用从初始化到销毁的各个阶段,以及如何在这些阶段中插入自定义逻辑。 8. **Flex和后端通信**:Flex应用通常需要与服务器进行数据交换,这涉及XML、JSON等数据格式,以及HTTP或...

    FLEX与JSP结合并测试HTTPService与java用XML通信

    在`web.xml`中,我们定义了几个关键的元素,如`&lt;context-param&gt;`、`&lt;listener&gt;`、`&lt;servlet&gt;`等,它们分别用于指定类路径、初始化HttpFlexSession监听器以及配置MessageBrokerServlet和FlexMxmlServlet。 `...

    flex第一步源代码全

    在这个“flex第一步”源码中,你可能会看到如何设置Flex项目的结构,如何在MXML文件中创建基本的UI元素,如何用ActionScript编写初始化和交互逻辑,以及如何使用Flex的组件库。这包括了创建一个简单的Flex应用的基本...

    Flex从入门到精通 教学视频 第一部分

    9. **Flex应用生命周期**:了解Flex组件的创建、初始化和销毁过程,这对于优化应用性能和管理资源至关重要。 这个教学视频的第一部分很可能是打下坚实基础的阶段,确保初学者对Flex的基本架构和开发流程有清晰的...

    Flex login flex cairngorm

    这个文件可能是登录界面的主MXML文件,包含视图组件以及初始化命令的代码。它可能包含了事件监听器的设置,当用户提交表单时,会触发登录过程。 9. **com目录** 这个目录通常包含项目的源代码,包括模型、视图、...

    flex FCKEditor 下载

    4. **处理事件**:FCKEditor会触发各种事件,如初始化完成、内容改变等,你可以监听这些事件来实现与编辑器的交互。 5. **显示编辑器**:将编辑器组件添加到Flex应用的UI容器中,使其在页面上可见。 6. **数据绑定...

    FLEX3教程(适合初学者)

    8. **Flex应用程序生命周期**:理解Flex组件的创建、初始化和销毁过程对于优化性能和管理资源非常重要。 9. **调试和测试**:学习如何使用Flash Builder的内置调试工具,如断点、变量查看器和性能分析器,可以帮助...

    flex DateField 时分秒 选择

    可能有构造函数来初始化组件,以及覆盖或扩展父类的方法来处理时间和日期的组合。 2. 时间选择UI元素:源代码可能包含了小时、分钟和秒的下拉列表或滑动条的实现,以及这些元素与DateField核心部分的交互逻辑。 3....

    flex和as3之间互相调用的方法

    - 在MXML组件中,我们可以使用`creationComplete`事件监听器或`initialize`事件来初始化AS3类。例如: ```mxml initialize="init();"&gt; &lt;![CDATA[ import myPackage.MyClass; private var myInstance:...

Global site tag (gtag.js) - Google Analytics