`
wangpengfei360
  • 浏览: 1050431 次
文章分类
社区版块
存档分类
最新评论

Flex多个组件使用时序问题

 
阅读更多

为了渲染一个场景,我们需要在这个场景中加入各种组件,例如:我们在canvas中加入DataGrid,Panel,WindowTitle等等。跟vs的控件拖拽很相似,将组件拖到布景上然后调整样式和尺寸。然后渲染启动。我们预期的效果是当我们切换到不同的组件时该组件能够使用。但往往我们会得到切换的组件并没有初始化完成。为什么这样,先来说说flex的初始化顺序:

preinitialize

应用程序application已实例化,但此时还未创建任何相关的孩子组件(child component)

initialize

此时,创建了相应的孩子组件,但还未对这些子组件进行布局

creationComplete

应用程序application完成全部实例化,并完成所有子组件的布局

apllicationComplete

上面三处事件的完成,表明application内部启动的整个进程完成,接下来便会通知SystemManager派发applicationComplete事件。此时,启动程序启动完成并准备运行。

详见:http://luoke920.iteye.com/blog/1168618

本次项目遇到的问题就是,当给panel初始化data时期望除非其datachange事件来绑定数据到datagrid上,panel.data=event.result。但是我们并没有触发该事件,并且该现象不是

必然出现,考虑到偶发问题往往跟程序时序有关,于是猜测到组件的实例化上。某次当我们使用该组件时它还没有createionComplete或者initialize。这样就好办了,只要在其creationComplete方法被执行时才真正的给其对象赋值,这样必然能够触发其datachange事件完成数据的绑定,经测试通过。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics