我有一个只能在classA中使用的classB。但是,classA被写为mxml,而不是actionscript代码。是否可以在MXML中嵌套类或在同一个.mxml文件中的根标记之后添加另一个类? 澄清:我想要在同一个文件中用MXML编写的两个类,但我在Adobe文档中找不到指定方式的任何内容。
答案 0 :(得分:4)
不,您不能在一个MXML文件中定义两个类,但是您可以为这两个类使用相同的包(命名空间)并生成classB internal
,因此它仅对该包中的类可见。< / p>
答案 1 :(得分:2)
我相信您正在寻找允许您在现有MXML文档中定义新MXML文档的fx:Component标记:
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:local="*">
<fx:Declarations>
<fx:Component className="MyMXMLClass1">
<s:Group>
<s:Button label="MyMXMLClass1" />
</s:Group>
</fx:Component>
<fx:Component className="MyMXMLClass2">
<s:Group>
<s:Button label="MyMXMLClass2" />
</s:Group>
</fx:Component>
</fx:Declarations>
<s:VGroup>
<local:MyMXMLClass1 />
<local:MyMXMLClass2 />
</s:VGroup>
</s:Application>
答案 2 :(得分:0)
如果嵌套类中需要多级继承,并且替代&lt; fx:Component&gt; (在上一个答案中提到),则使用&lt; fx:Library&gt; 例如:
<fx:Library>
<fx:Definition
name="MyClass"
>
<s:Group>
...
<s:/Group>
</fx:Definition>
</fx:Library>
...
<!-- Use MyClass later in the file. -->
<fx:MyClass ... />
&lt; fx:Library&gt; 必须位于MXML文件的顶部。此语法允许一行中有多个嵌套类定义,并且每个都可以扩展先前的via继承。