使用菜单的Flex组件生命周期 - 最佳实践

时间:2009-06-25 21:00:02

标签: flex actionscript-3

我在Flex中构建了一个具有不同用户角色的多平台应用程序。我使用带有菜单栏的View Stack在不同的页面之间导航。

然而 - 每次打开页面时,我都需要在init()函数中进行一些数据库调用,应用用户角色设置等。此init函数可以引用此页面的一些UI元素。

我尝试使用“creationComplete”事件加载它,但是这个只触发一次(因为视图堆栈显示的每个页面都没有重建)。

现在我把它放在“show”事件上,但这似乎不是一直触发,或者是在第一次完全创建页面之前。

这种情况的最佳做法是什么?  *我必须传递数据  *调用init函数(数据库调用)  *操纵组件

理想情况下,每次加载页面和创建所有组件后,我都需要一种方法来调用init。

感谢您的帮助, 马丁

3 个答案:

答案 0 :(得分:0)

只是一个想法,但为什么不尝试在ViewStack上进行远程调用更改效果。您可以使用视图实现的接口。

答案 1 :(得分:0)

尝试updateComplete事件。

当对象调用了commitProperties(),measure()和updateDisplayList()方法(如果需要)时调度。

这是在显示组件之前更改组件的最后机会。所有属性都已提交,组件已经过测量和布局。

答案 2 :(得分:0)

当我用包装类包装s:Group以放入TabNavigator时,我遇到了同样的问题。结果,show事件没有被调用。最后,我用s:Group更改了所有mx:Canvas,直接将它们放入TabNavigator(同样适用于ViewStack)。在调用creationComplete个事件后,后续页面访问调用show的{​​{1}}