`
txf2004
  • 浏览: 7038024 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

UIComponent的生命周期(life cycle)--转自N神的日志

阅读更多

我只转载我认为十分有意义的技术内容。N神的这篇当然值得,作为为数不多的RIA的初期技术BLOG希望他继续有这样的贡献,感激不尽

  写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部分,直接看偶下边画的图吧
  
  
  
  .....


本文转自
http://www.nshen.net/blog/article.asp?id=519

分享到:
评论

相关推荐

    【完美翻译】Flex组件的生命周期

    Flex组件的生命周期是Adobe Flex框架中一个至关重要的概念,它涉及到UIComponent类及其子类(如Button、Canvas等)在创建、初始化、显示和销毁过程中的各个阶段。深入理解组件生命周期有助于开发者更有效地管理组件...

    UIComponent.unitypackage

    UIComponent.unitypackage

    深入FLEX组件生命周期

    ### 深入理解FLEX组件生命周期 #### 一、引言 在FLEX开发过程中,深入了解组件的生命周期对于优化应用程序性能、确保组件正确响应用户交互至关重要。本文将详细解析Flex组件生命周期的主要阶段:初始化...

    UIComponent

    这可能包括了解组件的生命周期、状态管理、事件处理、以及如何将组件集成到更大的应用程序中。此外,项目可能还提供了详细的文档和示例代码,帮助初学者理解组件化的思想和实践。 在实际应用中,UIComponent的使用...

    Flex组件生命周期[收集].pdf

    Flex组件生命周期是软件开发中关于Adobe Flex框架的重要概念,它涉及到UIComponent的创建、初始化、显示和销毁等各个阶段。Flex应用的根对象是SystemManager,这是一个Display Class,继承自flash.display.MovieClip...

    MatlabGUI使用java组件无所不能-uicomponent.m

    MatlabGUI使用java组件无所不能-uicomponent.m 是不是曾经想做出漂亮的GUI 界面? 是不是曾经想在 Matlab GUI里面显示网页? 看看这个界面: matlab_java.png 所以,...

    UICOMPONENT - 将 uicontrol 扩展到所有 Java 类:增强替换 uicontrol 和 javacomponent,接受所有 Java (Swing/AWT) 样式组件-matlab开发

    UICOMPONENT 旨在直接替代 Matlab 的内置 UICONTROL 和 JAVACOMPONENT 函数。 它接受 UICONTROL 接受的所有参数和样式,以及任何其他可显示的 Java (Swing/AWT) 组件类。 保留了 UICONTROL 的调用约定和语法以实现...

    JavaServer Faces完全参考手册(JSF:Complete Reference)

    - **JSF 请求处理生命周期高度概述**:介绍了请求处理生命周期的基本流程,包括各个阶段的作用和执行顺序。 - **请求处理生命周期的各阶段**:具体解释每个阶段的功能,如恢复视图、应用请求值、处理验证等。 - **...

    从 Matlab 控制 Google Earth Milktruck:Matlab GUI 中的 Google Earth Monster Milktruck-matlab开发

    此函数是关于如何在 Matlab 图形或 GUI 中集成 ... 对于按钮,只需下载 uicontrol: http://www.mathworks.com/matlabcentral/fileexchange/14583-uicomponent-expands-uicontrol-to-all-java-classes 进一步阅读: h

    jsf1.2 source code

    API提供了如`UIComponent`、`FacesContext`、`PhaseListener`等核心组件和上下文对象,它们构成了JSF生命周期的基础。开发者可以使用这些接口来创建自定义组件,实现监听器,以及处理请求和响应。 ### 2. `jsf-ri` ...

    jsf1.2_src

    - JSF 1.2 具有六步处理生命周期:恢复视图、应用请求值、处理验证、更新模型值、调用应用和呈现响应。通过源码我们可以理解每个阶段的具体操作。 - 验证阶段是关键,源码中可以看到 `Validator` 接口及其实现,...

    jsf-api-src.zip

    6. **Event and Phase Model**:JSF的事件处理模型允许组件间通信,而生命周期阶段模型定义了请求处理的顺序,包括恢复视图、应用请求值、处理事件、更新模型值和渲染响应等阶段。 通过分析`jsf-api-src.zip`中的源...

    JSF-Java-jar包

    - `javax.faces.context.FacesContext`:在JSF生命周期中,提供对请求、响应、会话、应用程序范围的访问,以及与视图、渲染器、事件处理相关的服务。 - `javax.faces.event.ActionEvent`和`javax.faces.event....

    myfaces-core-assembly-2.0.4-bin.tar.gz

    5. **Lifecycle Phases**:JSF具有一个完整的生命周期,包括初始化、应用请求值、处理验证、更新模型值、调用应用事件和渲染响应等阶段,MyFaces Core提供了这些阶段的实现。 6. **渲染器**:MyFaces Core包含了一...

    jsf 详细 原理介绍 内容讲解

    在本文中,我们将深入探讨JSF的核心概念、组件、上下文和生命周期,帮助初学者理解其工作原理。 1. **JSF架构**: JSF的架构围绕组件模型、事件模型和请求处理生命周期展开。核心API包括多个包,如`javax.faces`、...

    jsf2.0源碼(myfaces2.0.4 api+impl)

    MyFaces API是JSF实现的核心接口定义,它定义了JSF框架的主要组件、事件处理、生命周期管理等接口。`myfaces-api-2.0.4.jad.jar` 文件包含了这些接口的定义,开发者可以借助这些接口来编写自定义的JSF组件、监听器...

Global site tag (gtag.js) - Google Analytics