错误:组件的根标记上不允许使用Id属性

时间:2009-11-21 02:26:50

标签: flex

我有一个类似下面的代码

<mx:Button id="TestingID" width="100%" height="20">                   
    <mx:Script>
        <![CDATA[
             import flexlib.containers.WindowShade;
        ]]>
    </mx:Script-->
</mx:Button>

我收到错误“组件的根标签上不允许使用id属性”

我必须给按钮提供ID才能引用它。我该怎么办..我该如何解决这个问题?

此致 Zeeshan

5 个答案:

答案 0 :(得分:3)

如果您从内部调用组件,则使用'this'关键字。

<mx:Button height="20">                   
    <mx:Script>
        <![CDATA[
             import flexlib.containers.WindowShade;
             this.percentWidth = 100;
        ]]>
    </mx:Script-->
</mx:Button>

如果您想从应用程序中引用自定义组件,那么就这样做。

<application xmlns:local = "[Directory containing custom component]">
    <local:MyCustomButton id="myButtonInstantiation" />
</application>

有意义吗?

答案 1 :(得分:1)

MXML文件本质上是一个类。因此,如果您想从其中引用该类的实例,那么您只需使用“this”。

答案 2 :(得分:1)

如果要将组件嵌套在另一个

中,也会发生这种情况

只要您使用<fx:Component>标记,就会出现在mxml-inline-document

的根目录中
<mx:itemEditor>
    <fx:Component>
            <mx:TextInput id="precioVenta"/>
    </fx:Component>
</mx:itemEditor> 

您需要做的就是将id属性移动到标签中,如下所示

<mx:itemEditor>
    <fx:Component id="precioVenta">
        <mx:TextInput />
    </fx:Component>
</mx:itemEditor> 

这适用于导致Flex编译器为组件的inlinde声明创建新上下文的任何类型的标记或嵌套

答案 3 :(得分:0)

如果您在文件中将其定义为Button的子类,则无法在此处设置id。将id放在您使用此新组件的位置。例如,如果这个新组件是AwesomeButton,您可以这样使用它:

<mycompnamespace:AwesomeButton id="testingId" />

答案 4 :(得分:0)

让我们看下面的代码 -

<s:ComboBox id="myCombo" dataProvider="{al}">
        <s:itemRenderer>
            <fx:Component>
                <s:CheckBox **id="NOWAY**" click="clickHandler(event)"/>
            </fx:Component>
        </s:itemRenderer>
</s:ComboBox>
在这种情况下不允许使用

id,使用'this'关键字,因为在此上下文中CheckBox是Component中的根标记。

相关问题