【问题标题】:RadioButtonGroup with each RadioButton added in components?RadioButtonGroup 与组件中添加的每个 RadioButton?
【发布时间】:2011-02-23 23:00:16
【问题描述】:

在 Flex 3 中工作时,我在画布上呈现了一系列组件,每个组件都应代表一个可能的选择,最好是在 RadioButtonGroup 中。因此,在我的父画布中,我定义了 RadioButtonGroup,并且每个组件都提供了一个 RadioButton。但是,这似乎不起作用。

假设有一个名为 aComponent 的组件定义如下:

<mx:Canvas ...>
 ...
 <mx:RadioButton id="someButton" groupName="myRadioButtonGroup" ... />
</mx:Canvas>

外层画布:

<mx:Canvas id="outerCanvas" ...>
 ...
 <mx:Script>
   public function doesSomething():void
   {
     var myComponent:aComponent = new aComponent();
     outerCanvas.addChild(myComponent);    
   }
 </mx:Script>
 ...
 <mx:RadioButtonGroup id="myRadioButtonGroup" />
</mx:Canvas>

所以我的猜测是,如果此时添加了其中四个组件,那么单选按钮将以互斥的方式运行,我将能够访问 myRadioButtonGroup.selectedValue 以获取当前选择。但是,它似乎并没有那样工作。

我正在尝试做的事情是否可能,或者我可能只是错过了什么?

谢谢!

【问题讨论】:

    标签: actionscript-3 flex3


    【解决方案1】:

    编辑 - 深入了解它:

    单选按钮组对组件不可用。它的 parent 有“myRadioButtonGroup”,但没有组件。将“myRadioButtonGroup”传递给构造函数并使用它。

    outerCanvas 函数:

    var myComponent:aComponent = new aComponent(myRadioButtonGroup);
    

    组件定义:

    private var radioGroup:RadioButtonGroup;
    function aComponent(radioGroup:RadioButtonGroup):void {
      this.radioGroup = radioGroup;
    }
    </mx:Script>
    <mx:RadioButton id="someButton" groupName="radioGroup" ... />
    

    未经测试,但希望能给您提供思路

    【讨论】:

    • 组件实际上有更多的东西,它由图像、文本、一些风格行为组成,并持有对另一个对象的引用。总体目标是制作一个屏幕,用户可以在其中选择其中一个,如果可能的话,我希望使用 RadioButtons 来管理选择过程。虽然我没有考虑过扩展 RadioButtonGroup,但我不确定我会看到它是如何工作的。
    • 好吧,你想要的完全可以在画布元素中实现,只是你的单选按钮组必须在该元素中。所以画布>单选按钮组>单选按钮。您可以在组件中编写任何您想要的逻辑,并且仍然可以访问该组件的单选按钮组。
    • 是的,这正是我的想法(以及我如何在上面用伪代码进行布局,至少我认为)。不幸的是,它不起作用。我可能错过了什么。
    • 你知道,它在画布上仍然可以工作。你的问题是范围。在组件中,没有 myRadioButtonGroup - 这是 mx.core.application.Application 的一部分(不记得我头顶上的新 flexglobals)。您可以将 myRadioButtonGroup 传递给构造函数中的组件。
    猜你喜欢
    • 1970-01-01
    • 2011-07-31
    • 1970-01-01
    • 2014-08-26
    • 1970-01-01
    • 2021-12-12
    • 2011-01-09
    • 2019-05-13
    • 1970-01-01
    相关资源
    最近更新 更多