Flex 组件的生命周期

原文(英语):   http://blogagic.com/18/flex-component-life-cycle

    现在我们已经很好的理解的预编译,但是我们还不必准备开始开发新的FLEX组件。

     不管怎样,开发新的组件之前 ,我们需要清晰的理解 Flex组件的生命周期。对生命周期很好的理解对于开发出正确 的组件是很有用的。

     下面的代码会有一些不同的原理的阐述,并下面有评论。通过“See code sample” 超链接来看它们。通过“See explanations”来看解析。

      FLEX组件生命周期被FLEX框架定义并在应用的过程中管理这些组件。更准确的来说,生命周期适合于所有从UIComponent继承过来的对象。

UIComponent 是所有的图形化对象元素(可以在屏幕上渲染或被用户操纵)的基类.

     UIComponent 生命周期包含以下几个阶段:

  •      构造
  •      配置
  •      初始化
  •      验证---提交  三种情况:  属性改变--------- size改变 ------
      • Drawing & Positioning changes

  •      拆分
  •     摧毁 
  •  
  • 以下代码实例阐述了UIComponent 生命周期的原型和原理。
  • The following code samples illustrate the patterns and principles of the UIComponent Life Cycle:

    • Flex Component Life Cycle Code Extracts
      • constructor
      • createChildren()
      • property change (setters, invalidateProperties() and commitProperties())
      • sizing change (invalidateSize() and measure())
      • drawing and positioning change (invalidateDisplayList() and updateDisplayList())

     1 构造函数

      构造是组件的第一个阶段,当构造函数被调用的时候开始。我们都已经知道了什么是构造函数和构造函数的目的。但是在FLEX中,有几个重要的点需要强调。

       a、super(),调用父类的构造函数。

        尽管调用父类的构造函数并不是必要的(因为编译器会帮你做),但是通过显示调用 super()更好。

       b、构造函数无参数

        构造函数必须没有必须的参数,这个原则的原因是:这个组件可以被AS和MXML实例化。当从一个MXML文件中创建一个组件,构造函数不允许提供任何参数。

因此,如果你想要你的组件可以用于MXML,记住 这个原则。

       c、构造函数里尽可能少的做工作和计算

        与许多其他语言不同的是,flex构造函数不必用来创建实例或者构建组件的属性。这条规则背后的原因是:当构造函数被调用,需要时间准备装配。它的一些属性还没创建起来,它的一些属性和设计会被子类改变,构造函数对即时的编译过程没有益处。

          构造函数被用来添加监听事件或者硬编码一些属性。但是你不应该放太多,在你的构造函数中越少的工作和计算越好。


你可能感兴趣的:(Flex 组件的生命周期)