原文(英语): http://blogagic.com/18/flex-component-life-cycle
现在我们已经很好的理解的预编译,但是我们还不必准备开始开发新的FLEX组件。
不管怎样,开发新的组件之前 ,我们需要清晰的理解 Flex组件的生命周期。对生命周期很好的理解对于开发出正确 的组件是很有用的。
下面的代码会有一些不同的原理的阐述,并下面有评论。通过“See code sample” 超链接来看它们。通过“See explanations”来看解析。
FLEX组件生命周期被FLEX框架定义并在应用的过程中管理这些组件。更准确的来说,生命周期适合于所有从UIComponent继承过来的对象。
UIComponent
是所有的图形化对象元素(可以在屏幕上渲染或被用户操纵)的基类.
UIComponent
生命周期包含以下几个阶段:
UIComponent
生命周期的原型和原理。The following code samples illustrate the patterns and principles of the UIComponent
Life Cycle:
createChildren()
invalidateProperties()
and commitProperties()
)invalidateSize()
and measure()
)invalidateDisplayList()
and updateDisplayList()
)1 构造函数
构造是组件的第一个阶段,当构造函数被调用的时候开始。我们都已经知道了什么是构造函数和构造函数的目的。但是在FLEX中,有几个重要的点需要强调。
a、super(),调用父类的构造函数。
尽管调用父类的构造函数并不是必要的(因为编译器会帮你做),但是通过显示调用 super()更好。
b、构造函数无参数
构造函数必须没有必须的参数,这个原则的原因是:这个组件可以被AS和MXML实例化。当从一个MXML文件中创建一个组件,构造函数不允许提供任何参数。
因此,如果你想要你的组件可以用于MXML,记住 这个原则。
c、构造函数里尽可能少的做工作和计算
与许多其他语言不同的是,flex构造函数不必用来创建实例或者构建组件的属性。这条规则背后的原因是:当构造函数被调用,需要时间准备装配。它的一些属性还没创建起来,它的一些属性和设计会被子类改变,构造函数对即时的编译过程没有益处。
构造函数被用来添加监听事件或者硬编码一些属性。但是你不应该放太多,在你的构造函数中越少的工作和计算越好。