Flex组件的生命周期
组件实例化生命周期描述了用组件类创建组件对象时所发生的一系列步骤,作为生命周期的一部分,flex自动调用组件的的方法,发出事件,并使组件可见.
下面例子用as创建一个btn控件,并将其加入容器中
var boxContainer:Box = new Box();
//设置Box容器
...
//创建btn
var b:Button = new Button();
b.label = "Submit";
...
//将btn添加到Box容器中
boxContainer.addChild(b);
下面的步骤显示了用代码创建一个Button 控件,并将这个控件添加到Box 容器中时所发生
的一切:
1.调用了组件的构造函数;
var b:Button = new Button();
2.通过设置组件的属性对组件进行设置,
// Configure the button control.
b.label = "Submit";
组件的setter方法将会调用invalidateProperties(),invalidateSize (),invalidateDisplayList()方法.
3.调用addChild()方法将该组件添加到父组件
// Add the Button control to the Box container.
boxContainer.addChild(b);
4.将component的parent的属性设置为对父容器的引用.
5.计算组件样式(style)设置
6.在组件上发布priininialize事件.
7.调用组件的createChildren()方法.
8.调用invalidateProperties(),invalidateSize(),invalidateDisplayList ()方法以触发后续到来的,下一个"渲染事件"(render event)期间对commitProperties(),measure(),updateDisplayList()方法的调用.这个规则唯一一个例外就是当用户设置组件的height 和width 属性时, Flex 不会调用measure() 方法.
9. 在组件上分发initialize 事件。此时,组件所有的子组件都被初始化,但是组件没有改更size 和处理布局。可以利用这个事件在组件布局之前执行一些附加的处理。
10. 在父容器上分发childAdd 事件.
11. 在父容器上分发initialize 事件.
12.在下一个"渲染事件"(render event)中,Flex执行以下动作:
a.调用组件的commitProperties()方法.
b.调用组件的measure()方法.
c.调用组件的layoutChrome方法.
d.调用组件的updateDisplayList()方法.
e.在组件上发布updateComplete事件.
13.如果commitProperties(),measure,updateDisplayList方法调用了invalidateProperties(),invalidateSize(),或invalidateDisplayList()方法,则Flexh 会分发另外一个render 事件.
14. 在最后的render 事件发生后, Flex 执行以下动作:
a. 通过设置组件的visible 属性使组件变为可视.
b. 在组件上分发creationComplete 事件.组件的大小(size)和布局被确定.
这个事件只在组件创建时分发一次.
c. 在组件上分发updateComplete 事件.无论什么时候,只要组件的布局
(layout),位置,大小或其它可视的属性发生变化就会分发这事件,然后组件被
更新,以使组件能够被正确地显示.
Flex组件的生命周期的更多相关文章
- ReactJS入门(二)—— 组件的生命周期
如果你熟悉avalon,使用过 data-include-rendered 和 data-include-loaded 等回调方法,那么你会很好地理解React组件的各个生命周期. 说白了其实就是Re ...
- React Native 中组件的生命周期
概述 就像 Android 开发中的 View 一样,React Native(RN) 中的组件也有生命周期(Lifecycle).所谓生命周期,就是一个对象从开始生成到最后消亡所经历的状态,理解生命 ...
- 《微信小程序七日谈》- 第三天:玩转Page组件的生命周期
<微信小程序七日谈>系列文章: 第一天:人生若只如初见: 第二天:你可能要抛弃原来的响应式开发思维: 第三天:玩转Page组件的生命周期: 第四天:页面路径最多五层?导航可以这么玩 前两篇 ...
- reactjs入门到实战(七)---- React的组件的生命周期
React的组件的生命周期有三个状态分别是:挂载(生产组件示例化.准备挂载到页面.挂载到页面).更新(更新值.更新DOM).和卸载(卸载后). >>>其他 getInitia ...
- react.js 从零开始(二)组件的生命周期
什么是生命周期? 组件本质上是一个状态机,输入确定,输出一定确定. 当状态改变的时候 会触发不同的钩子函数,可以让开发者做出响应.. 一个组件的生命周期可以概括为 初始化:状态下 可以自定义的函数 g ...
- react 组件的生命周期
组件的生命周期 过程 装载(Mounting) :组件被插入到 DOM 中: 更新(Updating) :组件重新渲染以更新 DOM: 卸载(Unmounting) :组件从 DOM 中移除. 过程 ...
- ReactJS入门3:组件的生命周期
本文主要介绍组件的生命周期. 组建的生命周期主要分为3个:Mounting.Updating.Unmounting. 1. Mounting:组件被加载到DOM 在本阶段,主要有三个方法: 1 ...
- vue的组件和生命周期
Vue里组件的通信 通信:传参.控制.数据共享(A操控B做一个事件) 模式:父子组件间.非父子组件 父组件可以将一条数据传递给子组件,这条数据可以是动态的,父组件的数据更改的时候,子组件接收的也会变化 ...
- React 深入系列4:组件的生命周期
文:徐超,<React进阶之路>作者 授权发布,转载请注明作者及出处 React 深入系列4:组件的生命周期 React 深入系列,深入讲解了React中的重点概念.特性和模式等,旨在帮助 ...
随机推荐
- 一些简单的例子让你在Java中能更好的学习并理解循环结构(1)!
一.java中流程控制方式采用三种基本流程结构:顺序结构,选择(分支)结构,循环结构. 1.[if-else 结构] if(1>2){ system.out.println("if条件 ...
- Eclipse开发工具的使用之-使用Eclipse的Debug调试Android程序
1.设置断点,双击Eclipse编辑界面的边界,或者右击编辑界面的边界,快捷键Ctrl+Shift+B. 2.F11键开始调试程序,程序安装到手机之后,并不会自动运行,需要你手动运行到断点处. 3.运 ...
- Js实例——模态框弹出层
1.描述 百度登录就是一个模态框弹出层.思路分析:先将灰色大背景和登陆盒子设为不可见,利用JS将其动态加载可见. 2.代码 <!DOCTYPE html> <html> < ...
- 在nltk中调用stanfordparser处理中文
出现unicode decode error 解决办法是修改nltk包internals.py的java()下增加cmd的参数,cmd = ["-Dfile.encoding=UTF-8&q ...
- POJ 2976 Dropping tests 01分数规划 模板
Dropping tests Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6373 Accepted: 2198 ...
- HUST 1027 Enemy Target!
求二分图的最小点覆盖集,并输出 对于每一个a[i][j]=1,我们从行i-->列j建立一条边 显然,这张图是一张二分图.左边的节点代表删除哪一行,右边的节点代表删除哪一列.中间的边代表所有a[i ...
- 编码器芯片MLX90363的使用
文档资料 MLX90363 Datasheet MLX90363 Application Note 使用 对于编码器来说,Rotary Application模式 SPI驱动中,CS必须在8个字节都发 ...
- MediaScanner
http://blog.csdn.net/hellofeiya/article/details/8255898 http://www.cnblogs.com/halzhang/archive/2011 ...
- Frequent Distribution sorted by frequency
import nltk def freq_sorted(text,ranklimit): fd=nltk.FreqDist(text) cumulative = 0.0 for rank, (word ...
- RAC(ReactiveCocoa)
什么是 ReactiveCocoa ReactiveCocoa(其简称为 RAC)是由 Github 开源的一个应用于 iOS 和 OS X 开发的新框架.RAC 具有函数式编程和响应式编程的特性.它 ...