我有一个类似下面的代码
<mx:Button id="TestingID" width="100%" height="20">
<mx:Script>
<![CDATA[
import flexlib.containers.WindowShade;
]]>
</mx:Script-->
</mx:Button>
我收到错误“组件的根标签上不允许使用id属性”
我必须给按钮提供ID才能引用它。我该怎么办..我该如何解决这个问题?
此致 Zeeshan
答案 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中的根标记。