组件实例化
生命周期描述了用组件类创建组件对象时所发生的一系列步骤,作为
生命周期的一部分,
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),位置,大小或其它可视的属性发生变化就会分发这事件,然后组件被
更新,以使组件能够被正确地显示.
相关文章
- Angular 4选择组件模板DOM元素(DOM操作)的方式
- 数据可视化、数据分析常用的表格组件都有哪些?(3)
- vue mint-ui 框架下拉刷新上拉加载组件的使用
- 40.VUE学习之--组件之间的数据传参父组件向子组件里传参,props的使用实例操作
- 关于vue3生命周期的使用、了解以及用途(详细版)
- Vue框架:9,Vue3的用法,setup函数,ref和reactive,计算属性和监听属性,生命周期,toRefs,script setup的作用和lang,Vue后台管理模板
- oracle官方文档之数据库用户使用oracle组件或第三方应用程序时所需的权限规定
- Vue前后端交互、生命周期、组件化开发
- vue-calendar 基于 vue 2.0 开发的轻量,高性能日历组件
- vue 子父组件之间的通信,及在调用组件的地方