这是我的代码:
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 :(得分:4)
这是由于flex component lifecycle。当为RadioButton分配一个组时,它实际上不会被添加,直到它的commitProperties稍后运行一帧。
要获得正确的group.numRadioButtons,您必须异步执行操作。有趣的是spark.components.RadioButtonGroup实际上在添加或删除单选按钮时调度未记录的“numRadioButtonsChanged”事件。它有效,但当然是无证使用,风险自负。