代码之家  ›  专栏  ›  技术社区  ›  Martin

带有菜单的Flex组件生命周期-最佳实践

  •  1
  • Martin  · 技术社区  · 16 年前

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

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

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

    现在我已经把它放在了“show”事件中,但是这似乎并没有持续触发,或者在页面第一次完全创建之前。

    这个案子的最佳做法是什么? *我得把数据传过来 *调用init函数(数据库调用) *操纵组件

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

    谢谢你的帮助, 马丁

    3 回复  |  直到 16 年前
        1
  •  0
  •   Florian F    16 年前

    只是个主意,但为什么不尝试对ViewStack change effect执行远程调用呢。您可以使用视图实现的接口。

        2
  •  0
  •   tefozi    16 年前

    尝试 updateComplete 事件。

    在调用对象的commitProperties()、measure()和updateDisplayList()方法(如果需要)时调度。

    这是显示组件之前更改组件的最后一次机会。所有属性都已提交,组件已测量并分层。

        3
  •  0
  •   zawhtut    14 年前

    当我把它包起来的时候我也有同样的问题 s:Group 将包装类放在TabNavigator中。结果,未调用show事件。最后我改变了我所有的 s:组 具有 mx:Canvas ,直接将它们放入TabNavigator(ViewStack也是如此)。之后 creationComplete 事件被调用一次,随后的页面访问调用 show 属于 mx:画布