【问题标题】:flex add radiobutton child to VBoxflex 将单选按钮子项添加到 VBox
【发布时间】:2010-02-03 06:46:32
【问题描述】:

在 actionscript 中向 VBox 添加单选按钮时遇到问题。

    var radioButton:RadioButton = new RadioButton();
    radioButton.groupName = "source";
    radioButton.label = "label";

    radioButton.selected = false;
    radioButton.addEventListener(Event.CHANGE, sourceChangeHandler);

    vBox.addChild(radioButton);

我首先在 mxml 中创建了这些单选按钮,它工作正常,但现在需要在 actionscript 中动态生成单选按钮,它不起作用。

在调试器中单步执行时,我在尝试执行 addchild 语句时遇到绑定错误 (1009),并且 VBox 中没有显示任何内容。是不是我做错了什么?

【问题讨论】:

    标签: apache-flex radio-button addchild vbox


    【解决方案1】:

    这看起来不错,我唯一能看到的是你可以尝试改变

    radioButton = new RadioButton();
    

    var radioButton:RadioButton = new RadioButton();
    

    如果不是这样,它可能与您如何实例化 VBox 有关。

    编辑

    根据我们的 cmets,看起来真正的问题是视图堆栈的属性应该更改。

    creationPolicy="All"
    

    这样,当单选按钮被添加到 vBox 时,vBox 就存在于内存中。

    【讨论】:

    • 很抱歉让您感到困惑。我从一个更大的文件中删除了代码,变量(单选按钮)被正确实例化,但在我发布的 sn-p 中没有。修复了 sn-p。对不起。
    • 我想了这么多,稍微调查一下您的错误,似乎可能的原因是当您尝试调用 addChild 方法时,VBox 尚未创建完成,您能给出一个实例化VBox的sn-p?并且还可能显示何时调用此函数?
    • 它所在的容器,在视图堆栈中,它不是选定的容器。你认为这是问题的根源吗?
    • 是的,如果该项目还没有在视图堆栈中出现,那么它还不存在。您可以通过更改视图堆栈并向其添加属性 creationPolicy="All" 来解决此问题。这将在您的视图堆栈中创建所有项目,以便它们可以对它们执行操作。
    猜你喜欢
    • 1970-01-01
    • 2013-02-05
    • 2013-08-09
    • 1970-01-01
    • 2012-05-20
    • 2018-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多