【问题标题】:Adobe Flex : how to make an MXML base classAdobe Flex:如何制作 MXML 基类
【发布时间】:2012-10-28 02:01:31
【问题描述】:

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

【问题讨论】:

标签: apache-flex flex4 flash-builder flex4.5


【解决方案1】:

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 项目中执行“new --> MXML Component”即可。

【讨论】:

  • 谢谢你,完美的答案和非常清晰的描述。你应该用这样的答案写书。
  • @fredbasset 谢谢;我过去写过很多书;但是当出版商来寻找 Flex 书籍时,我们从未达成协议。这是一个有趣的轶事:jeffryhouser.com/index.cfm/2010/4/10/…
猜你喜欢
  • 1970-01-01
  • 2013-01-12
  • 1970-01-01
  • 2014-04-01
  • 1970-01-01
  • 2011-04-23
  • 2011-11-20
  • 1970-01-01
  • 2010-12-12
相关资源
最近更新 更多