在as3中只选择一个复选框

时间:2011-11-01 12:22:52

标签: flash actionscript-3

我有大约18个复选框,我想要 知道我是否有办法让他们中只有一个成为 choosen。即我无法选择其中2个错误发生的方框。 我知道我可以使用radioboxes,但是对于estetic,我更喜欢复选框。 你能提供一些代码吗

3 个答案:

答案 0 :(得分:0)

尝试这样的事情

<fx:Script>
    <![CDATA[
        [Bindable]
        private var selectedCheckBox:String = "";
    ]]>
</fx:Script>
<s:CheckBox id="checkBox1" label="CheckBox" click="selectedCheckBox = checkBox1.id"
            selected="{selectedCheckBox == checkBox1.id}"/>
<s:CheckBox id="checkBox2" label="CheckBox" click="selectedCheckBox = checkBox2.id"
            selected="{selectedCheckBox == checkBox2.id}"/>
<s:CheckBox id="checkBox3" label="CheckBox" click="selectedCheckBox = checkBox3.id"
            selected="{selectedCheckBox == checkBox3.id}"/>

答案 1 :(得分:0)

我认为最好使用皮肤作为复选框的单选按钮来匹配您正在寻找的美学。

答案 2 :(得分:0)

private var selectedCB : CheckBox;

for( var i : int = 0, n : int = 18; i < n ; i++ ){
    var cb : CheckBox = new CheckBox();
    cb.addEventListener( Event.CHANGE, onChangeEvent_checkBox );
    //position cb etc.
    this.addChild( cb );
}

private function onChangeEvent_checkBox( event : Event ) :void{
    var currentCB : CheckBox = CheckBox( event.target );
    if( selectedCB && currentCB !== selectedCB )
        selectedCB.deselect();
    selectedCB = ( currentCB.selected ) ? currentCB : null;

}

但是,TBH我认为这是一个坏主意。用户知道无线电按钮和复选框应该如何表现和IMO(非常糟糕的想法(从UX POV)开始混合那些)。当然,这并不是放射性按钮的行为方式,但足够接近令人困惑。