代码之家  ›  专栏  ›  技术社区  ›  Faisal Mansoor

在mxml中使用组件引用安全吗

  •  1
  • Faisal Mansoor  · 技术社区  · 16 年前

    考虑以下单选按钮示例。

    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
    <mx:Script>
    <![CDATA[
        private function getRb1():RadioButton {
            trace(rb1 == null);
            return rb1;                     
        }   
    ]]>
     </mx:Script>
    <mx:VBox>
        <mx:RadioButtonGroup **id="rbg" selection="{getRb1()}**"/>      
        <mx:RadioButton id="rb1" label="Radio Button 1" />
        <mx:RadioButton id="rb2" label="Radio Button 2" />
        <mx:RadioButton id="rb3" label="Radio Button 3" />
    </mx:VBox>  
     </mx:Application>
    

    我只是想知道这是一种特殊情况,还是在一般情况下引用mxml中的组件是不安全的。

    2 回复  |  直到 16 年前
        1
  •  1
  •   Christian Nunciato    16 年前

    我不太确定你在问什么,但希望这能回答你的问题——来自Flex文档:


    包含对当前 在中选择单选按钮控件 在MXML中 取消选择当前选定的 单选按钮控制。

    不过,总的来说,在MXML中引用组件是完全可以的;除其他许多事情外,这就是通常处理效果的方式。例如:

    <mx:Glow id="g" />
    <mx:Label showEffect="{g}" />
    

    但是,在您的情况下,假设您在设置所选项目时遇到问题,这可能是因为您没有指定 group 单选按钮上的属性;省略了将组组件与各个按钮分离的步骤。添加后,您可以使用 Bindable 包含对组件引用的变量,如下所示:

    <mx:Script>
        <![CDATA[
    
            [Bindable]
            private var selectedRadioButton:RadioButton;    
    
            private function this_creationComplete(event:Event):void
            {
                selectedRadioButton = rb1;
            }
    
            private function btn_click(event:Event):void
            {
                selectedRadioButton = rb2;
            }
    
        ]]>
     </mx:Script>
    <mx:VBox>
        <mx:RadioButtonGroup id="rbg" selection="{selectedRadioButton}" />
        <mx:RadioButton id="rb1" group="{rbg}" label="Radio Button 1" />
        <mx:RadioButton id="rb2" group="{rbg}" label="Radio Button 2" />
        <mx:RadioButton id="rb3" group="{rbg}" label="Radio Button 3" />
    
        <mx:Button label="Choose a Different Button" click="btn_click(event)" />
    </mx:VBox> 
    

    这有道理吗?希望这不是完全错了;请回复并告诉我,我会尽我所能提供帮助。

        2
  •  0
  •   user56250 user56250    16 年前

    推荐文章