0

我有几个带有按钮的 HBox。我以编程方式使某些按钮不可见。在某个时刻,所有按钮都应该是不可见的。如何判断所有按钮何时不可见?这样做最简单的方法是什么?

每个按钮的可见性独立于其他按钮确定。

<mx:HBox>
    <mx:Button id="button1" 
    click="clickHandler(event);" 
    toggle="true"
    visible=true/>

    <mx:Button id="button2" 
    click="clickHandler(event);" 
    toggle="true"
    visible=false/>

    <mx:Button id="button3" 
    click="clickHandler(event);" 
    toggle="true"
    visible=true/>
</mx:HBox>

<mx:HBox>
    <mx:Button id="button4" 
    click="clickHandler(event);" 
    toggle="true"
    visible=false/>

    <mx:Button id="button5" 
    click="clickHandler(event);" 
    toggle="true"
    visible=true/>

    <mx:Button id="button6" 
    click="clickHandler(event);" 
    toggle="true"
    visible=false/>
</mx:HBox>

谢谢你。

-拉克西米迪

4

2 回答 2

2

最简单的方法不一定是最好的方法,但这样的事情应该可以工作......

public function areAllButtonsInvisible() : Boolean {
    for ( var i : int = 1; i < 7; i++ ) {
        if ( ( this["button"+i] as UIComponent ).visible {
            return false;
        }
    }
    return true;
}
于 2010-10-06T17:52:13.650 回答
1

上面 Gregor 的回答适用于组件中的所有按钮,但如果您只想检查某个 HBox 内的按钮,您可以在 HBox 组件的子数组上使用“some”函数,如下所示:

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
<mx:Script>
    <![CDATA[
        import mx.core.UIComponent;

        private function clickHandler(event:MouseEvent):void{
            (event.target as UIComponent).visible = false;
            buttonsVis.text = box.getChildren().some(isVisible).toString();
        }

        private function isVisible(item:*, index:int, array:Array):Boolean{
            return (item as UIComponent).visible;
        }

    ]]>
</mx:Script>
<mx:HBox id="box">
    <mx:Button id="button1" 
               click="clickHandler(event);" 
               toggle="true"
               visible="true"/>

    <mx:Button id="button2" 
               click="clickHandler(event);" 
               toggle="true"
               visible="false"/>

    <mx:Button id="button3" 
               click="clickHandler(event);" 
               toggle="true"
               visible="true"/>
</mx:HBox>
<mx:Label text="Buttons are Visible: "/><mx:Label id="buttonsVis" text="true"/>

于 2010-10-06T18:13:18.590 回答