代码之家  ›  专栏  ›  技术社区  ›  Jonathan Dumaine

flex 4中的全球状态

  •  1
  • Jonathan Dumaine  · 技术社区  · 15 年前

    flex 4引入了在皮肤内和组件内本地化的状态。这在MVC模型上是有意义的,因此可视元素可以有自己的状态(例如,对于按钮:上、下、上等),这些状态与组件的状态是分开的。然而,如何使一个全局应用程序状态呢?SDK中是否已经有类似于我正在查找的内容?

    进一步澄清:假设我们有一个应用程序,它有三个单独的“模式”,不仅改变当前元素的外观,而且改变容器或组件的属性和元素。因此,状态不仅适用于每个组件和皮肤,而且适用于整个应用程序。基本上,它是另一个抽象层。回到按钮示例,假设我们有向上、向下和向上状态,但是对于全局应用程序状态1,有3个单独的向上、向下和向上状态,对于全局应用程序状态2,还有3个单独的状态,依此类推。

    对于视觉学习者:

    对于全局应用程序状态,按钮的自定义外观中的状态可能如下所示:

             <s:states>
                <s:ApplicationState name="mode1">
                    <s:State name="up" />
                    <s:State name="over" />
                    <s:State name="down" />
                </s:ApplicationState>
                <s:ApplicationState name="mode2">
                    <s:State name="up" />
                    <s:State name="over" />
                    <s:State name="down" />
                </s:ApplicationState>
                <s:ApplicationState name="mode3">
                    <s:State name="up" />
                    <s:State name="over" />
                    <s:State name="down" />
                </s:ApplicationState>
            </s:states>
    
            <s:Button label.mode1.up="Application is in mode1" label.mode2.up="Application is in mode2" label.mode3.over="etc., etc., etc."/>
    

    谢谢

    1 回复  |  直到 9 年前
        1
  •  0
  •   Ryan Guill    15 年前

    不,不支持这样的“子”状态。你能做的就是拥有 mode1_up, mode1_over, mode1_down, mode2_up, mode2_over, mode2_down 等 然后根据一个私有变量来选择您所处的模式,并相应地进行切换。你认为这对你想做的事有用吗?