flex中的viewstacks和状态?

时间:2009-07-23 04:27:17

标签: flex flash actionscript-3 flex3 air

我有一个应用程序,我目前正在使用视图堆栈来显示每个页面,我想知道这是正确的方法,或者我应该使用不同的状态(或其他)。

该网站由菜单栏提供支持,菜单栏包含主页,工具,支持等顶级项目。 “工具”菜单下方是一个包含Tool1,Tool2,Tool3的子菜单。目前,当用户点击工具子菜单中的任何工具时,我从视图堆栈中调出一个子容器(每个子实际上都是一个separete组件)。

这是正确的方法,还是应该使用状态为每个工具页面显示相应的元素?

3 个答案:

答案 0 :(得分:5)

这取决于观点的不同程度。如果它们非常相似,则状态良好,因为它们有助于有效地重用已在基本组件中定义的大量标记。如果它们是非常不同的视图,则其他开发人员难以维护状态,因为它不像每个视图的单独组件那样简单。

ViewStack也允许使用延迟实例化。这由“creationPolicy”属性控制。 DI意味着您的应用程序将加载更快,因为只有ViewStack的第一个子项将被初始实例化。当您导航到其他孩子时,他们将按需实例化。

答案 1 :(得分:1)

国家是要走的路。您可以通过扩展基本状态轻松地重用状态并扩展其功能。

答案 2 :(得分:1)

正如cliff.meyers所说,如果屏幕之间的变化很大,请使用视图堆栈。进行复杂的状态转换将是一场维护噩梦。

我通常会选择合并的视图堆栈/状态解决方案。在他们自己的视图堆栈中很好地定义了不同的屏幕,我使用状态在它们之间切换。