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事件完成数据的绑定,经测试通过。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值