`

flex creationComplete event

阅读更多

     creationComplete恐怕是flex用的最多的事件了,不管啥,application标签后面接个creationcomplete事件处理函数,做为程序的起点。这种做法是没错的,可是有些时候它也不是都管用。先看看来自devguide_flex3的论述:

 

  The preinitialize event occurs too early in the component life cycle for most initialization activities. It is useful, however, in the rare situations where you must set the properties on a parent before the children are created.
To configure a component before Flex has determined its visual appearance, use the initialize event. For example, use this for setting properties that affect its appearance, height, or width.
Use the creationComplete event for actions that rely on accurate values for the component’s size or position when the component is created. If you use this event to perform an action that changes the visual appearance of the component, Flex must recalculate its layout, which adds unnecessary processing overhead to your application.
Use the updateComplete event for actions that must be performed each time a component’s characteristics change, not just when the component is created.

 

这是flex components initialization lifecycle里论述的关于组件初始化的过程(个人认为这是flex的超级重点)。其它事件不看了。creationcomplete事件发生在某个组件(以及它的子组件)完全建立的时候,包括样式,大小,布局完成。也就是讲,是你能看到UI的时候。它隐含了一些意思在里面(个人经验之谈),很可能在实际操作过程中被忽略掉。

必须可见 。我在这点上吃了几次亏。creationcomplete的时机是布局已经完成的时刻,那如果某些子组件不在布局之内呢,比如tag navigator, viewstack(其它的我没试过,不好讲)。它的还没被选中的子组件就没有初始化,访问它就报错了。
只发生一次 。就是建立的时候,如果以后布局有变化,发出的是updatecomplete 事件。
每个组件都有 。除了application,还有它的子组件,子组件的子组件… 。地球人都有呀。这一点可以做为第一点的解决方案,就是在子组件里各自建立creationcomplete的处理函数,这样对数据模块化也有好处。

文章来自: 闪无忧(www.5uflash.com) 详文参考:http://www.5uflash.com/Flex-AIR/Flexziliao/4424.html

分享到:
评论

相关推荐

    flex 控制鼠标移动的例子

    在`creationComplete`事件中,我们可以为`mouseArea`添加`MouseMove`事件的监听器: ```xml <![CDATA[ import mx.events.MouseEvent; private function init():void { mouseArea.addEventListener(MouseEvent...

    使用FLEX 和 Actionscript开发FLASH 游戏(一)

    creationComplete="CreationComplete()" enterFrame="EnterFrame(event)"> <mx:Script><![CDATA[ public function CreationComplete():void{} public function EnterFrame(event:Event):void{} ]]> ``` - `...

    Flex 图片放大缩小

    在Flex开发中,图片放大缩小功能是一个常见的交互需求,它能提供用户友好的查看体验,尤其是在展示细节丰富的图像时。Flex是一种基于ActionScript 3.0的开源框架,主要用于构建富互联网应用程序(RIA)。在这里,...

    flex实现googelMap

    <s:Application creationComplete="init()"> ``` `docs`目录可能包含了关于Google Maps for Flex API的文档,这对于理解和使用API非常有帮助。开发者可以通过查阅文档了解各种类、方法、属性和事件,...

    flex 设置背景音乐

    ### Flex设置背景音乐知识点解析 在Flex开发中,设置背景音乐是一个常见的需求,尤其是在游戏、交互式应用或娱乐软件中。本篇文章将基于提供的代码片段,深入探讨如何使用Flex技术来实现背景音乐功能。 #### 一、...

    flex4cookbook

    creationComplete="app_creationCompleteHandler(event)"> <![CDATA[ import mx.events.FlexEvent; protected var names:Array = ['Leif','Zach','Stacey','Seth','Leonard']; protected var titles:Array = ...

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

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

    flex 图片缩放

    这段代码应该在Image组件的`creationComplete`事件中执行,确保在组件完全创建并知道其实际尺寸之后再进行设置。此外,由于可能需要应对窗口或容器的resize事件,需要在resize事件中再次调用这段代码,以确保图片...

    Flex页面跳转.txt

    <mx:TabNavigator id="tabNav" creationComplete="tabNav_creationCompleteHandler(event)" /> ``` 2. **添加子组件**:通过动态添加子组件来实现页面跳转。 ```as3 tabNav.tabs = [new mx.controls.Tab(label=...

    flex4浏览器关闭

    例如,`creationComplete`、`initialize`和`dispose`等方法可以在适当的时候调用,以确保资源的有效管理。 5. **MXML文件(TestFlex.mxml)**:MXML是Flex中用来创建组件的声明式语言。在`TestFlex.mxml`中,我们...

    flex自定义事件、简单例子说明

    <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300" creationComplete="init()"> [Event(name="MY_CLICK", type="ascode.MyEvent")] <![CDATA[ import ascode.MyEvent; ...

    Flex4创建页面

    <s:DataGrid id="deptDg" includeIn="Departments" x="50" y="130" creationComplete="deptDg_creationCompleteHandler(event)" requestedRowCount="4" width="650"> <!-- 其他列 --> <!-- 示例数据...

    FLEX 鼠标移上去图片放大,图片放大的倍数

    - `creationComplete="smoothImage(event)"`确保图片加载完成后平滑显示,提高视觉效果。 ### 五、总结 本文详细介绍了如何在Flex中实现鼠标悬停时图片放大效果,包括使用Zoom组件进行整体缩放、Image组件实现单个...

    flex自定义右键菜单 完全屏蔽

    为了屏蔽这个菜单,我们需要覆盖组件的`creationComplete`事件,然后监听`contextMenu`事件。在事件处理函数中,我们可以设置`event.preventDefault()`来阻止默认菜单的显示。这样,当用户尝试打开右键菜单时,将...

    Flex调用xml通过DataGrid遍历简单示例

    creationComplete="service.send()" > <![CDATA[ import mx.controls.Alert; import mx.rpc.events.FaultEvent; import mx.collections.ArrayCollection; import mx.rpc.events.ResultEvent; ...

    Flex4.5常见问题总结

    若希望某个对象作为数据绑定的源,需在其属性前加上`[Bindable]`或`[Bindable("eventname")]`标记,确保属性变化时能触发数据绑定事件。 综上所述,Flex4.5提供了丰富的工具和机制,帮助开发者构建高性能、高互动性...

    flex lifecycle

    - Flex 会在渲染事件 (`render event`) 发生时调用这些方法。 #### 三、关键方法解析 - **`invalidateProperties()`:** 通知 Flex 在下一个验证周期执行 `commitProperties()` 来处理属性变化。 - **`...

    as3 flex mxml调用.as文件例子

    在`TestFlex.mxml`的`creationComplete`事件或任何适当的事件处理函数中,我们可以写入以下代码: ```mxml private var myClassInstance:MyClass; protected function creationCompleteHandler(event:Event):...

    flex获得html容器传递的url参数值

    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()"> <![CDATA[ import mx.controls.Alert; private var params:Object; private function init():...

Global site tag (gtag.js) - Google Analytics