2010-08-19 52 views
0

這裏是我的代碼:爲什麼radioButtonGroup不會立即設置其numRadioButons?

  var x : int = 50; 
      var group : RadioButtonGroup = new RadioButtonGroup(); 
      for (var i : int = 0; i < 5; i++) { 
       var rb : RadioButton = new RadioButton(); 
       rb.id = i.toString(); 
       rb.group = group; 
       rb.label = i.toString(); 
       rb.x = x; 
       x += 40; 
       cnv_subContent.addElement(rb);//a BorderContainer 
      } 
      Alert.show(group.numRadioButtons.toString()); 

當我運行應用程序,它表明我爲 「0」。爲什麼這個?

+0

您在調試應用程序時看到了什麼?標籤是否添加到組中? – hering 2010-08-19 13:29:12

回答

4

這是由於flex component lifecycle。當一個RadioButton被分配一個組時,它實際上並沒有被添加,直到它的commitProperties稍後運行一個幀。

要獲得正確的group.numRadioButtons,您必須異步執行操作。有趣的是spark.components.RadioButtonGroup在添加或刪除單選按鈕時實際分派一個未記錄的「numRadioButtonsChanged」事件。它的工作原理當然是無證使用,風險自擔。

相關問題