2010-03-17 58 views
0

我正在創建很多像RadioButton,Combo Box,CheckBox這樣的動態flex組件。需要識別組件的selectedItem

if(type=="mx.controls.CheckBox"){ 
      //if(rep.currentIndex<5){ 
       for each(j in x){ 
       k=createNewInstanceOfClass(rep.currentItem.type);   
       k.id="radioGroup"+rep.currentItem; 
       k.label=j.linkname; 
       k.data=j.linkname; 
       linkPanel[rep.currentIndex].addChild(DisplayObject(k)); 
       } 

MXML

<mx:Panel layout="horizontal" id="linkPanel" title="Evaluation" fontWeight="bold" height="100%" backgroundColor="0xFFF7E6" 
           borderThicknessLeft="0" borderThicknessRight="0" cornerRadius="10" headerHeight="20" dropShadowEnabled="false" roundedBottomCorners="true" verticalScrollPolicy 
           ="off" horizontalScrollPolicy="off" headerColors="[#ffffff,#ffffff]" width="100%"> 
           <mx:Form> 
           <mx:FormItem paddingLeft="2" paddingTop="2" paddingBottom="2"> 
            <mx:Repeater id="rep2" dataProvider="{sendToActionScript(rep.currentItem.link)}" /> 
           </mx:FormItem> 
           </mx:Form> 
          </mx:Panel> 

當我點擊提交最後我需要得到所有在每個問題中選擇的值。所有組件都是在運行時動態創建的。

回答

1

可以列出linkPanel用的getChildren孩子() 通過這些循環時,請閱讀「選擇」屬性

 public function test():void { 
      for each (var obj:Object in linkPanel.getChildren()) { 
       if(obj is RadioButton) { 
        Alert.show((obj as RadioButton).selected.toString()); 
       } 

      } 
     } 

如果要創建屬於一組單選按鈕的列表,看看「selectedValue」for this group

<mx:RadioButtonGroup id="rbg" /> 
<mx:RadioButton id="answer1" group="{rbg}" label="Answer 1" /> 

public function test():void { 
    Alert.show(rbg.selectedValue.toString()) 
} 
+0

TypeError:錯誤#1006:getChildren不是函數。當我點擊提交按鈕時,選擇RadioButton後出現此錯誤。 – Kevin

+0

在我的示例中,linkPanel是Panel元素ID。 這是什麼在你的? – MonoThreaded

+0

只有在我的示例中,它的面板 – Kevin