Flex程序生命周期===Flex创建一个UI component的全过程

Flex 程序的基础是 SystemManager 对象(父类为 flash.display.MovieClip )。

SystemManager 只有两帧(帧: flash 时间轴的最小单位)。第一帧指示 flex 程序的下载进度,第二帧为 flex 程序本身(由于 swf 文件可以边下载便运行,所以可以边运行第一帧边下载第二帧)。第一帧非常轻量,保证可以被及时下载完毕并被 flashplayer 显示。

 

 

一旦下载完毕 flex 程序的第二帧(即application本身), SystemManager 就会进入第二帧,并为 flex 程序创建 application 实例。 SystemManager 有一个 application 属性,它一直为 null ,知道创建 application 实例后并指向这个 application 实例。这时候 application 实例就被初始化并开始执行其内部的步骤了。也就是说这个 application 的内部生命周期事件开始执行。

 

内部生命周期事件如下:

preinitialize

application 开始实例,但它所有的 child 组件还没有被创建。

initialize

application 已经创建了所有的 child 组件,但还没有进行布局。

creationComplete

application 已经被完全实例化,并完成了 child 组件的布局。

 

一旦 application 完成了上述步骤,就会通知 SystemManager ,然后由 SystemManager

派发 applicationComplete 事件。这时候, application 开始运行了就。

 

SystemManager 同时管理着 application 最上面的所有内容。这意味着所有的 pop upscursors tool tips 都被 SystemManager 管着。

 

一般应用 SystemManager 的方法是让它监听事件。因为 SystemManager 拥有最后一个机会可以处理事件,当然这个事件必须可以 bubble up

=============================

Flex创建一个UI component的全过程

  • 请求component的构造器
  • 设置component的属性
  • 调用父容器的addChild方法,这包括:
    1. a) Flex设置component的parent属性并引用其父容器。
    2. b) 设置component样式
    3. c) component发送add事件(其实是flex发送,component是源)
    4. d) 父容器发送addChild事件
    5. e) Flex发送component的preinitialize时间
    6. f) Flex创建并初始化component的子UI—如button组件显示“确定”文本的text label
    7. g) Flex发送Initialize时间
  • 接下来,为了显示component,一个render事件被触发
    1. a) Flex完成显示component的所有必需过程,包括layout component
    2. b) Flex设置component的visible属性为true
    3. c) Flex发送creationComplete事件
    4. d) Flex发送组建的updateComplete事件



Flex创建component有四个事件

  1.   preinitialize 事件发生在component生命周期的最开始。
  2.   捕获 initialize 事件去设置component的外观,因为这是flex还没有做这件事
  3.   creationComplete事件 当component被绘制完毕并且被放置在布局中,flex派发这个事件
  4.   updateComplete 会在每当component 更新时发生
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值