Apache flex 我可以在MXML中的一个文件中包含多个类吗?
我有一个只在classA中使用的classB。但是,classA是以mxml编写的,而不是actionscript代码。是否可以在MXML中嵌套类或在同一.MXML文件的根标记后添加另一个类?Apache flex 我可以在MXML中的一个文件中包含多个类吗?,apache-flex,actionscript-3,mxml,Apache Flex,Actionscript 3,Mxml,我有一个只在classA中使用的classB。但是,classA是以mxml编写的,而不是actionscript代码。是否可以在MXML中嵌套类或在同一.MXML文件的根标记后添加另一个类? 澄清:我希望两个类都用MXML编写在同一个文件中,但我在Adobe文档中找不到任何指定如何编写的内容。不,您不能在一个MXML文件中定义两个类,但您可以为这两个类使用相同的包(名称空间),并使classB成为内部的,因此,它仅对该包中的类可见。我相信您正在寻找允许您在现有MXML文档中定义新MXML文档的
澄清:我希望两个类都用MXML编写在同一个文件中,但我在Adobe文档中找不到任何指定如何编写的内容。不,您不能在一个MXML文件中定义两个类,但您可以为这两个类使用相同的包(名称空间),并使classB
成为内部的
,因此,它仅对该包中的类可见。我相信您正在寻找允许您在现有MXML文档中定义新MXML文档的标记:
<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>
如果嵌套类中需要多个继承级别,则的替代方法是使用,例如:
<fx:Library>
<fx:Definition
name="MyClass"
>
<s:Group>
...
<s:/Group>
</fx:Definition>
</fx:Library>
...
<!-- Use MyClass later in the file. -->
<fx:MyClass ... />
...
...
必须位于MXML文件的顶部。此语法允许在一行中嵌套多个类定义,每个类定义都可以通过继承扩展上一个类定义。您能提供更多示例吗?这取决于你的类是否基于视图以及它们的用途。我认为这个答案有点不完整。MXML文件中不能有两个类。但是,在一个ActionScript文件中可以有两个类。这很少见,但有时确实会出现。以Flex 4 VerticalLayout类为例。另外,我不知道如何在MXML文件中指定“内部”;这就是最初的海报所问的。@www.Flextras.com OP说,classA是用MXML编写的,classB必须是内部的,他没有提到这也必须是MXML。