所有容器, 事实上所有 UIComponent 组件都使用一种三步走的过程来创建本身, 即创建成员属性、 创建子组件和设置自己的布局。 所有容器的第一步都是由框架调用它的构造方法并且广播一个预初始化事件。第二步, 假设容器与其所有的子孙的关系构成一棵树形结构, 那么 , 预初始化的工作是由上而下的,也就是说,组件优先预初始化父亲容器,按照深度顺序首先 预初始化根节点位置上的容器,直到叶子节点的子组件预初始化完毕。第三步,类似于于初 始化的过程,真正初始化完成的顺序却是和预初始化结束的顺序相反,如此,先出初始化完 毕叶子节点位置的子组件, 然后此过程往上行节点重复, 当某个节点位置的子组件初始化完 毕时即广播一个 creationComplete 事件, 同理, 随后上一级子组件也会广播一次这个事件, 以此类推, 所有的上行的父亲容器直到根节点位置上的容器都会在自身初始化完毕的时候广 播该事件。
示例代码:






HBox preinitialize
VBox preinitialize
FirstPanel preinitialize
SecondPanel preinitialize
FirstPanel initialize
SecondPanel initialize
VBox initialize
HBox initialize
FirstPanel creationComplete
SecondPanel creationComplete
VBox creationComplete
HBox creationComplete 当组件广播 preinitialize 和 initialize 事件时,它的子组件还没有创建完成。因此,要访问某个组件的所有子组件, 必须侦听 creationComplete 时间。 在广播 initialize 事件后 , 组件本身已经完成测量、绘制和布局,但是其子组件可能仍未完全完成实例化过程。最后, creationComplete 事件表明所有容器内的子组件都完全实例化结束