在所有/大部分父母被禁用后,组件不可见

时间:2014-03-28 06:47:20

标签: flex flex4 flex4.5

我有多个组件嵌套到另一个组件中。就像一个<s:Group />是其他<s:Group />的孩子一样,是另一个<s:Group />的孩子,依此类推。问题是根据不同的条件,不同的组件被禁用。可能会发生所有组件一次性被禁用,由此最内层组件失去其可见性。 我在这里发布了一个描述我情况的示例代码。

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
                       xmlns:s="library://ns.adobe.com/flex/spark" 
                       xmlns:mx="library://ns.adobe.com/flex/mx" >
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>

    <s:Group horizontalCenter="0" verticalCenter="0" >
        <s:Group enabled="false">
            <s:Group enabled="false">
                <s:Group enabled="false" horizontalCenter="0" verticalCenter="0">
                    <mx:Canvas disabledOverlayAlpha="1" width="{tlGroup.width}" height="{tlGroup.height}">
                        <s:TileGroup id="tlGroup" enabled="false" >

                            <mx:CheckBox selected="true" enabled="true"/>
                            <mx:CheckBox enabled="true" />
                        </s:TileGroup>
                    </mx:Canvas>
                </s:Group>
            </s:Group>
        </s:Group>
    </s:Group>
</s:WindowedApplication>

此外,我无法使用disabledAlpha="",因为我在其他编译器参数(-theme=${flexlib}/themes/Halo/halo.swc)中使用Halo主题。

1 个答案:

答案 0 :(得分:0)

这似乎是使用Flex states的好例子。

将代码添加到您的MXML文件中:

   <s:states>
            <s:State name="my_state_1" />
            <s:State name="my_state_2" />
   </s:states>

然后添加到您的论坛和/或元素includeIn="my_state_1"enabled.my_state_2="true"等。