【问题标题】:viewstacks vs states in flex?视图堆栈与flex中的状态?
【发布时间】:2010-11-13 06:23:13
【问题描述】:

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

该站点由一个菜单栏提供支持,其中包含主页、工具、支持等顶级项目。在工具菜单下面是一个带有工具 1、工具 2、工具 3 的子菜单。目前,当用户单击工具子菜单中的任何工具时,我会从视图堆栈中调出一个子容器(每个子容器实际上都在一个单独的组件中)。

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

【问题讨论】:

    标签: apache-flex flash actionscript-3 flex3 air


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您提供信息 Chetan Sastry 。我有两个菜单,一个是主菜单,另一个是子菜单。如果我设置主菜单视图堆栈 otpion 那么我该如何设置子菜单。
    • 使用 setProperty 设置视图栈的 selectedIndex 属性。
    • 如果我这样尝试显示一些错误
    【解决方案2】:

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

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

    【讨论】:

    • 他说视图堆栈的每个子节点都是一个组件,这意味着如果使用状态,则只有一个删除子节点,然后添加子节点。这里没有噩梦。除了易于实施和维护之外,ViewStack 与使用状态相比没有任何优势。延迟实例化是一个好处。使用状态时,状态添加的组件也会在该状态变为当前状态时实例化。
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-09
      • 2011-12-08
      • 2018-08-06
      • 2019-11-26
      • 2014-08-19
      • 1970-01-01
      • 1970-01-01
      • 2014-06-23
      相关资源
      最近更新 更多