0

我的 MXML 文件中有一些通用代码,我想将其移至基类的 MXML 等价物,然后从中获得各种 MXML 组件子类。在 MXML 中执行此操作的语法是什么?

4

1 回答 1

4

MXML 被视为一种 ActionScript 生成语言;当前版本的 Flex 编译器会将 MXML 转换为 ActionScript。

因此,就所有意图和目的而言,MXML 类与 ActionScript 类没有什么不同。出于继承目的,MXML 类可以扩展 ActionScript 类——每次创建新的应用程序文件时都需要这样做。一个 MXML 类也可以扩展另一个 MXML 类;该方法与扩展 ActionScript 类没有什么不同。

首先,以您喜欢的任何方式创建您的基类。这是一个扩展组的示例类结构:

<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" 
         xmlns:s="library://ns.adobe.com/flex/spark" 
         xmlns:mx="library://ns.adobe.com/flex/mx" width="400" height="300">
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
    <fx:Script>
        <![CDATA[
            // shared ActionScript Code here
        ]]>
    </fx:Script>
<!-- shared MXML code here -->
</s:Group>

假设您将该文件命名为 BaseClass.mxml 并将其放在目录 com.flextras 中。扩展前一个类的新类将如下所示:

<?xml version="1.0" encoding="utf-8"?>
<flextras:BaseClass xmlns:fx="http://ns.adobe.com/mxml/2009" 
                    xmlns:s="library://ns.adobe.com/flex/spark" 
                    xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:flextras="com.flextras.*" width="400" height="300">
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
</flextras:BaseClass>

在 Flash Builder 中,只需在 Flash 项目中执行“新建 --> MXML 组件”即可非常简单。

于 2012-10-28T02:19:33.097 回答