我可以在MXML中的一个文件中有多个类吗?

时间:2011-06-28 15:59:32

标签: flex actionscript-3 mxml

我有一个只能在classA中使用的classB。但是,classA被写为mxml,而不是actionscript代码。是否可以在MXML中嵌套类或在同一个.mxml文件中的根标记之后添加另一个类? 澄清:我想要在同一个文件中用MXML编写的两个类,但我在Adobe文档中找不到指定方式的任何内容。

3 个答案:

答案 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继承。

相关问题