FLEX组件的生命周期

xiaoxiao2026-05-19  12

组件实例化 生命周期描述了用组件类创建组件对象时所发生的一系列步骤,作为 生命周期的一部分, 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组件的生命周期
转载请注明原文地址: https://www.6miu.com/read-5049020.html

最新回复(0)