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中的重点概念.特性和模式等,旨在帮助 ...
随机推荐
- PAT1011
With the 2010 FIFA World Cup running, 随着2010世界杯的举行 football fans the world over were becoming increa ...
- python自动发邮件总结及实例说明
python发邮件需要掌握两个模块的用法,smtplib和email,这俩模块是python自带的,只需import即可使用.smtplib模块主要负责发送邮件,email模块主要负责构造邮件. sm ...
- USACO Section 1.1 Greedy Gift Givers 解题报告
题目 问题描述 有若干个朋友,朋友之间可以选择互相赠送一些有价值的礼物.一个人可以选择将一部分钱分给若干个朋友,例如某人送给其他两个人钱,总共赠送3元,两个人平均分,原本应该是每人1.5元,但是只能取 ...
- python之requests模块
1.安装 pip install requests 2.基本用法 就是以某种HTTP方法向远端服务器发送一个请求而已 import requests r = requests.get('https:/ ...
- JAVA语法题
import java.util.*; public class Birthdays { public static void main(String[] args){ Map<Friends, ...
- 史上最强php生成pdf文件,html转pdf文件方法
body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...
- Asp.net Ajax提供PageMethods调用
页面上的Javascript通过ASP.NET AJAX除了可以调用Web服务类,还可以调用网页中的静态方法. <%@ Page Language="C#" %> &l ...
- C socket udp方式发数据
#define HOST_SERVER_IP "192.168.3.35" #define HOST_PORT 9501 #define SLEEP_TIME 1 #define ...
- MySQL 同步状态
Exec_Master_Log_Pos: The position of the last event executed by the SQL thread from the master's bin ...
- 2.4 easyui - panel的使用
<div id="p" class="easyui-panel" title="My Panel" style ...