我在Flex中构建了一个具有不同用户角色的多平台应用程序。我使用带有菜单栏的View Stack在不同的页面之间导航。
然而 - 每次打开页面时,我都需要在init()函数中进行一些数据库调用,应用用户角色设置等。此init函数可以引用此页面的一些UI元素。
我尝试使用“creationComplete”事件加载它,但是这个只触发一次(因为视图堆栈显示的每个页面都没有重建)。
现在我把它放在“show”事件上,但这似乎不是一直触发,或者是在第一次完全创建页面之前。
这种情况的最佳做法是什么? *我必须传递数据 *调用init函数(数据库调用) *操纵组件
理想情况下,每次加载页面和创建所有组件后,我都需要一种方法来调用init。
感谢您的帮助, 马丁
答案 0 :(得分:0)
只是一个想法,但为什么不尝试在ViewStack上进行远程调用更改效果。您可以使用视图实现的接口。
答案 1 :(得分:0)
尝试updateComplete事件。
当对象调用了commitProperties(),measure()和updateDisplayList()方法(如果需要)时调度。
这是在显示组件之前更改组件的最后机会。所有属性都已提交,组件已经过测量和布局。
答案 2 :(得分:0)
当我用包装类包装s:Group
以放入TabNavigator时,我遇到了同样的问题。结果,show事件没有被调用。最后,我用s:Group
更改了所有mx:Canvas
,直接将它们放入TabNavigator(同样适用于ViewStack)。在调用creationComplete
个事件后,后续页面访问调用show
的{{1}}