2011-10-31 77 views
0

我有16個複選框,我需要看看他們中的哪一個被選中。有沒有一個功能可以做到這一點? 我可以用if()來完成它們,但是它會很長時間地感謝您的幫助!複選框as3功能

回答

4

把你的複選框放在一個數組中,然後創建一個函數遍歷數組,並查看哪個框被選中(可以使用「for each」和「if」)。將所有選中的元素添加到新數組中,並將其用作函數的返回值。

+1

更好的是,把它們放在一個Vector中。 ,使它完全類型安全。 – sean

+1

+1爲載體。然後檢查'.filter()'爲脆弱的善良。 'var selectedCheckboxes = checkboxVector.filter(function(cb:Checkbox,i:int,v:Vector。):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 && c.selected)returnArray.push(c); 
    } 
    return returnArray; 
} 

功能getSelectedCb()返回的數組。

我希望這可能對你有用!

+0

這是一個糟糕的解決方案,因爲它引入的錯誤只會在運行時進行處理。 – sean

+0

根據我的看法,這取決於這樣的應用帶給你的應用程序。這是錯誤的考慮絕對方式不好的解決方案! –

+2

@MatteoVinci老兄,這是一個壞主意。 –