我有一些带有按钮的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>
谢谢。
-Laxmidi
答案 0 :(得分:2)
最简单的方法不一定是最好的方式,但这样的事情应该有用......
public function areAllButtonsInvisible() : Boolean {
for ( var i : int = 1; i < 7; i++ ) {
if ( ( this["button"+i] as UIComponent ).visible {
return false;
}
}
return true;
}
答案 1 :(得分: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"/>