Как снять все флажки в Flex 4

Я пытаюсь снять все флажки одним нажатием кнопки. Я пробовал создать связанную логическую переменную следующим образом:

[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, будут отмечены все флажки. Итак, если я хотел выделить все, это работает. Однако я хочу снять все отмеченные флажки.

Флажки находятся только внутри группы плиток и не находятся внутри сетки или группы данных. Я бы подумал, что есть простой способ сделать это, но я еще не понял этого. Любые предложения будут ценны.


person ROSCH    schedule 23.04.2012    source источник


Ответы (2)


У меня было грязное решение. Дайте идентификаторы флажкам и используйте следующую функцию для нажатия кнопки:

protected function untick_clickHandler(event:MouseEvent):void{
            cb1.selected=false;
            cb2.selected=false;
            cb3.selected=false;
        }
person Gabor Kako    schedule 23.04.2012
comment
Спасибо, но там слишком много флажков. Я нашел решение: - person ROSCH; 24.04.2012

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
person ROSCH    schedule 24.04.2012