我的 MXML 文件中有一些通用代码,我想将其移至基类的 MXML 等价物,然后从中获得各种 MXML 组件子类。在 MXML 中执行此操作的语法是什么?
问问题
1757 次
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 回答