如何取消选择Flex 4中的所有复选框

时间:2012-04-23 15:52:24

标签: actionscript-3 flex checkbox flex4 flex4.6

我正在尝试取消选中按钮上的所有复选框。我尝试过这样创建一个绑定的布尔变量:

[Bindable]
public var allselected:Boolean;

然后在我的复选框上:

<s:CheckBox selected="{allselected}" label="PT Identified" />
<s:CheckBox selected="{allselected}" label="Chart Reviewed"/>
<s:CheckBox selected="{allselected}" label="H&amp;P"/>
<s:CheckBox selected="{allselected}" label="Permit Signed"/>

在单独的按钮上单击我将布尔变量设置为false,并且在我已选中复选框后没有任何反应。如果我将布尔变量设置为true,则会检查所有复选框。所以,如果我想选择所有,那么它的工作原理。但是,我想取消选中所有选中的复选框。

复选框仅驻留在tilegroup中,不在datagrid或datagroup中。我认为有一种简单的方法可以做到这一点,但我还没弄明白。任何建议都将不胜感激。

2 个答案:

答案 0 :(得分:0)

我有一个肮脏的解决方案。给复选框ID,并使用以下功能进行按钮单击:

protected function untick_clickHandler(event:MouseEvent):void{
            cb1.selected=false;
            cb2.selected=false;
            cb3.selected=false;
        }

答案 1 :(得分:0)

public function findChild(numChilds:int, parent:Object):void
        {
            for (var i:int = 0; i < numChilds; i++)
            {
                var obj:Object = parent.getChildAt(i);
                if(obj.hasOwnProperty('selected'))
                {
                    if(obj.selected == true)
                    {
                        obj.selected = false;
                    }
                }
                if (obj is DisplayObjectContainer)
                {
                    // search for children
                    var children:int = obj.numChildren;
                    findChild(children, obj);
                }
            }
        }

用法:

var elems:int = checklistVgroup.numChildren;  // Get the number of elements

findChild(elems, checklistVgroup);            // Use our function