写flex组件,了解UIComponent的生命周期(life cycle)很重要,尤其是初始化(initialization)的过程很复杂,贴个文件可以很容易看清这个顺序
文件如下:
package
{
import flash.events.Event;
import mx.core.UIComponent;
import mx.events.FlexEvent;
public class UILifeCycle extends UIComponent
{
public function UILifeCycle()
{
super();
trace("***[ constructor ]");
//flash.events.Event
this.addEventListener(Event.ADDED,onAdded);
this.addEventListener(Event.ADDED_TO_STAGE,onAddedToStage);
this.addEventListener(Event.REMOVED,onRemoved);
this.addEventListener(Event.REMOVED_FROM_STAGE,onRemovedFromStage);
//mx.events.FlexEvent;
this.addEventListener(FlexEvent.ADD,onAdd);
this.addEventListener(FlexEvent.REMOVE,onRemove);
this.addEventListener(FlexEvent.PREINITIALIZE,onPreinitialize);
this.addEventListener(FlexEvent.INITIALIZE,onInitialize);
this.addEventListener(FlexEvent.CREATION_COMPLETE,onCreationComplete);
}
//flash.events.Event
private function onAdded(eo:Event):void{trace(eo.toString())};
private function onAddedToStage(eo:Event):void{trace(eo.toString())};
private function onRemoved(eo:Event):void {trace(eo.toString())};
private function onRemovedFromStage(eo:Event):void {trace(eo.toString())};
//mx.events.FlexEvent;
private function onAdd(eo:FlexEvent):void {trace(eo.toString())};
private function onRemove(eo:FlexEvent):void{trace(eo.toString())};
private function onPreinitialize(eo:FlexEvent):void{trace(eo.toString())};
private function onInitialize(eo:FlexEvent):void{trace(eo.toString())};
private function onCreationComplete(eo:FlexEvent):void{trace(eo.toString())};
override protected function createChildren():void{trace("***[ createChildren ]")}
override protected function commitProperties():void{trace("***[ commitProperties ]")}
override protected function measure():void{trace("***[ measure ]")}
override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{trace("***[ updateDisplayList]")}
}
}
拖到舞台上发布就可以看到trace信息了:
***[ constructor ]
[Event type="added" bubbles=true cancelable=false eventPhase=2]
[Event type="add" bubbles=false cancelable=false eventPhase=2]
[Event type="preinitialize" bubbles=false cancelable=false eventPhase=2]
***[ createChildren ]
[Event type="initialize" bubbles=false cancelable=false eventPhase=2]
***[ commitProperties ]
***[ measure ]
***[ updateDisplayList]
[Event type="creationComplete" bubbles=false cancelable=false eventPhase=2]
[Event type="addedToStage" bubbles=false cancelable=false eventPhase=2]
如果想详细的了解各个部分请看
本站推荐过的<Programing Flex 2>
那本书的最后一章
或者在自带的帮助中找
Creating and Extending Flex 3 Components / Creating ActionScript
Components / Creating Advanced Visual Components in ActionScript
偶简单总结了一下
组件的life cycle包含3个阶段:initialization, update, destruction.
initialization阶段又包括construction部分, attachment部分,和initialization部分,直接看偶下边画的图吧
keeping in mind what invalidation methods cause a call to what validation method
invalidateProperties( ) commitProperties( )
invalidateSize( ) measure( )
invalidateDisplayList( ) updateDisplayList( )
commitProperties()
This method’s purpose is to commit any values typically set by
using a setter function. Often the commitProperties( ) method is as simple as calling
super.commitProperties( ) and setting the cached values:
measure( )
The purpose of this method is to perform measurement calculation and define sizing
information for the framework.
As a general rule, you will typically use the children’s width and
height properties to retrieve the size values of children that do not inherit from
UIComponent. For children that do inherit from UIComponent, you will want to use the
getExplicitOrMeasuredWidth( ) and getExplicitOrMeasuredHeight( ) methods.
updateDisplayList( )
设置位置和大小
In the measure( ) validation method we retrieved the size, and in the
updateDisplayList( ) method we will set the size and position the children. When
positioning and sizing children, if a child does not inherit from UIComponent you will
want to use the x and y properties for positioning and the width and height properties
for sizing. If a child does inherit from UIComponent, you should use the
setActualSize(width,height) method for sizing and the move(x,y) method for
positioning.
分享到:
相关推荐
Flex组件的生命周期是Adobe Flex框架中一个至关重要的概念,它涉及到UIComponent类及其子类(如Button、Canvas等)在创建、初始化、显示和销毁过程中的各个阶段。深入理解组件生命周期有助于开发者更有效地管理组件...
UIComponent.unitypackage
### 深入理解FLEX组件生命周期 #### 一、引言 在FLEX开发过程中,深入了解组件的生命周期对于优化应用程序性能、确保组件正确响应用户交互至关重要。本文将详细解析Flex组件生命周期的主要阶段:初始化...
3. **生命周期管理**:UIComponent可能需要关注自身的生命周期,比如在何时创建、显示、隐藏或销毁。Kotlin的协程可以帮助我们优雅地处理这些生命周期问题,避免回调地狱。 4. **可观察性(Observability)**:为了...
Flex组件生命周期是软件开发中关于Adobe Flex框架的重要概念,它涉及到UIComponent的创建、初始化、显示和销毁等各个阶段。Flex应用的根对象是SystemManager,这是一个Display Class,继承自flash.display.MovieClip...
### JSF自定义组件及其生命周期详解 #### 一、引言 JavaServer Faces (JSF) 是一种基于标准的Web应用程序框架,它简化了企业级Java应用的开发过程。JSF支持构建高度交互式的用户界面,并且允许开发者通过自定义组件...
UICOMPONENT 旨在直接替代 Matlab 的内置 UICONTROL 和 JAVACOMPONENT 函数。 它接受 UICONTROL 接受的所有参数和样式,以及任何其他可显示的 Java (Swing/AWT) 组件类。 保留了 UICONTROL 的调用约定和语法以实现...
在本文中,我们将深入探讨JSF的核心概念、组件、上下文和生命周期,帮助初学者理解其工作原理。 1. **JSF架构**: JSF的架构围绕组件模型、事件模型和请求处理生命周期展开。核心API包括多个包,如`javax.faces`、...
MatlabGUI使用java组件无所不能-uicomponent.m 是不是曾经想做出漂亮的GUI 界面? 是不是曾经想在 Matlab GUI里面显示网页? 看看这个界面: matlab_java.png 所以,...
API提供了如`UIComponent`、`FacesContext`、`PhaseListener`等核心组件和上下文对象,它们构成了JSF生命周期的基础。开发者可以使用这些接口来创建自定义组件,实现监听器,以及处理请求和响应。 ### 2. `jsf-ri` ...
This is a Flex UIComponent that can be used 谋n a FLEX 3 mxml application as component written in action script 3.0, provides you to create items that cab be filled from an XML or Query ResultSet or ...
6. **Event and Phase Model**:JSF的事件处理模型允许组件间通信,而生命周期阶段模型定义了请求处理的顺序,包括恢复视图、应用请求值、处理事件、更新模型值和渲染响应等阶段。 通过分析`jsf-api-src.zip`中的源...
CustomComponent 自定义组件(空视图、标题、表单输入项、设置项、菜单项、按钮、文字) 继承于ConstraintLayout EmptyView 空数据视图-(图标加文字描述) 属性表格 name format description empty_title ...
- **JSF 请求处理生命周期高度概述**:介绍了请求处理生命周期的基本流程,包括各个阶段的作用和执行顺序。 - **请求处理生命周期的各阶段**:具体解释每个阶段的功能,如恢复视图、应用请求值、处理验证等。 - **...
### Flex开发自定义控件详解 Flex是一种强大的框架,用于构建高性能、丰富的互联网应用程序(RIA)。自定义控件是Flex开发中的一个重要方面,它允许开发者根据特定需求创建独特的UI组件,从而增强应用的功能性和...
- **生命周期**:JSF 生命周期定义了从用户请求到响应的处理流程,包括初始化、应用请求值、处理验证、更新模型值、调用应用程序业务逻辑和渲染响应等阶段。开发者可以插入自定义的行为来影响这个过程。 3. **JSF ...
Flex4中的组件生命周期主要分为三个阶段:诞生(Birth)、生命期(Life)和死亡(Death)。这些阶段涉及不同的事件序列,这些事件序列决定了组件在其生命周期内的行为。 - **诞生阶段**:在这个阶段,组件被创建并...
它简化了前端和后端的交互,提供了丰富的组件库,以及事件处理和生命周期管理机制。JSF的核心概念包括组件、事件、转换和验证、生命周期以及可扩展性。 《JSF in Action》这本书是JSF领域的经典之作,它深入浅出地...