为什么radioButtonGroup不会立即设置其numRadioButons?

时间:2010-08-19 11:28:59

标签: actionscript-3 flex4

这是我的代码:

            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”。为什么这样?

1 个答案:

答案 0 :(得分:4)

这是由于flex component lifecycle。当为RadioButton分配一个组时,它实际上不会被添加,直到它的commitProperties稍后运行一帧。

要获得正确的group.numRadioButtons,您必须异步执行操作。有趣的是spark.components.RadioButtonGroup实际上在添加或删除单选按钮时调度未记录的“numRadioButtonsChanged”事件。它有效,但当然是无证使用,风险自负。