Функция Checkbox as3

#flash #actionscript-3

#вспышка #actionscript-3

Вопрос:

У меня есть 16 флажков, и мне нужно посмотреть, какой из них был выбран. Есть ли функция, которая может это сделать? Я могу сделать это с помощью if(), но это будет слишком долго, спасибо за помощь!!

Ответ №1:

Поместите ваши флажки в массив, затем создайте функцию для перебора массива и просмотра, какой флажок был выбран (вы можете использовать «для каждого» и «если»). Добавьте все выбранные в новый массив и используйте это в качестве возвращаемого значения функции.

Комментарии:

1. Еще лучше, поместите их в вектор. <Флажок>, чтобы он был полностью защищен от типов.

2. 1 для векторов. А затем проверьте .filter() , нет ли хрустящей корочки. var selectedCheckboxes = checkboxVector.filter(function(cb:Checkbox, i:int, v:Vector.<Checkbox>):Boolean { return cb.selected; });

Ответ №2:

Вы должны перечислять флажки с прогрессивным индексом, чтобы вы могли переключать их с помощью простого for . Например:

 //Your checkboxes
var cb1:CheckBox = new CheckBox();
addChild(cb1);
var cb2:CheckBox = new CheckBox();
addChild(cb2);
var cb3:CheckBox = new CheckBox();
addChild(cb3);
var cb4:CheckBox = new CheckBox();
addChild(cb4);
var cb5:CheckBox = new CheckBox();
addChild(cb5);
...

private function getSelectedCb():Array
{
    var returnArray:Array = new Array();
    for(var i:uint = 1; i < 6; i  )
    { 
        var c:CheckBox = this["cb"   i] as CheckBox;
        if(c != null amp;amp; c.selected)returnArray.push(c);
    }
    return returnArray;
}
  

Функция getSelectedCb() возвращает массив, содержащий все выбранные флажки.

Я надеюсь, что это может быть вам полезно!

Комментарии:

1. Это плохое решение, потому что ошибки, вносимые им, будут обрабатываться только во время выполнения.

2. По моему мнению, это зависит от преимуществ, которые подобный подход приносит вашему приложению. Неправильно считать решение абсолютно плохим!

3. @MatteoVinci чувак, это плохая идея.