0

我正在尝试取消选择按钮单击时的所有复选框。我试过创建一个绑定的布尔变量,如下所示:

[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 中,不在数据网格或数据组中。我认为有一种简单的方法可以做到这一点,但我还没有弄清楚。任何建议将不胜感激。

4

2 回答 2

0

我有一个肮脏的解决方案。为复选框提供 id 并为按钮单击使用以下函数:

protected function untick_clickHandler(event:MouseEvent):void{
            cb1.selected=false;
            cb2.selected=false;
            cb3.selected=false;
        }
于 2012-04-23T18:41:24.003 回答
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
于 2012-04-24T16:06:55.533 回答