使用 Flex SDK 创建第一个桌面 AIR 应用程序

为了通过实际操作较快地说明 Adobe® AIR® 的工作原理,请按照以下说明使用 Flex SDK 创建一个简单的基于 SWF 的 AIR“Hello World”应用程序。本教程说明如何使用随 Flex SDK 提供的命令行工具编译、测试和打包 AIR 应用程序(Flex SDK 包括 AIR SDK)。

首先必须安装运行时和 Adobe® Flex™。此教程使用 AMXMLC 编译器、 AIR 调试启动器 (ADL) 和 AIR 开发人员工具 (ADT)。可以在 Flex SDK 的 bin 目录中找到这些程序(请参阅 安装 Flex SDK )。

创建 AIR 应用程序描述符文件

本节介绍如何创建应用程序描述符,它是具有以下结构的 XML 文件:

<application xmlns="..."> 
    <id>...</id> 
    <versionNumber>...</versionNumber> 
    <filename>…</filename> 
    <initialWindow> 
        <content>…</content> 
        <visible>…</visible> 
        <width>…</width> 
        <height>…</height> 
    </initialWindow> 
</application>
  1. 创建名为 HelloWorld-app.xml 的 XML 文件,并将其保存到项目目录中。

  2. 添加 <application> 元素,并在其中包含 AIR 命名空间属性:

    <application xmlns="http://ns.adobe.com/air/application/2.7"> 命名空间的最后一段“2.7”指定应用程序所需的运行时版本。

  3. 添加 <id> 元素:

    <id>samples.flex.HelloWorld</id> 应用程序 ID 用于唯一地标识应用程序及发行商 ID(通过 AIR 派生自用于对应用程序包进行签名的证书)。建议采用的形式为以点分隔的反向 DNS 样式的字符串,如 "com.company.AppName" 。应用程序 ID 用于安装、访问专用应用程序文件系统存储目录、访问专用加密存储以及应用程序间的通信。

  4. 添加 <versionNumber> 元素:

    <versionNumber>1.0</versionNumber> 可帮助用户确定安装哪个版本的应用程序。

    注: 如果您使用的是 AIR 2 或更早版本,则必须使用 <version> 元素,而非 <versionNumber> 元素。
  5. 添加 <filename> 元素:

    <filename>HelloWorld</filename> 用作操作系统中应用程序可执行文件、安装目录和类似引用的名称。

  6. 添加包含下列子元素的 <initialWindow> 元素,从而为初始应用程序窗口指定属性:

    <content>HelloWorld.swf</content> 标识 AIR 要加载的 SWF 根文件。

    <visible>true</visible> 使窗口立即可见。

    <width>400</width> 设置窗口宽度(以像素为单位)。

    <height>200</height> 设置窗口高度。

  7. 保存该文件。完整的应用程序描述符文件应如下所示:

    <?xml version="1.0" encoding="UTF-8"?> 
    <application xmlns="http://ns.adobe.com/air/application/2.7"> 
        <id>samples.flex.HelloWorld</id> 
        <versionNumber>0.1</versionNumber> 
        <filename>HelloWorld</filename> 
        <initialWindow> 
            <content>HelloWorld.swf</content> 
            <visible>true</visible> 
            <width>400</width> 
            <height>200</height> 
        </initialWindow> 
    </application>

此示例仅设置了几个可能的应用程序属性。有关应用程序属性的完整设置(利用这些设置可以指定窗口镶边、窗口大小、透明度、默认安装目录、关联文件类型以及应用程序图标等),请参阅 AIR 应用程序描述符文件

编写应用程序代码

注: 基于 SWF 的 AIR 应用程序可以使用通过 MXML 或 Adobe® ActionScript® 3.0 定义的主类。此示例使用 MXML 文件定义其主类。使用 ActionScript 主类创建 AIR 应用程序的过程基本相同。不过不是将 MXML 文件编译成 SWF 文件,而是编译 ActionScript 类文件。使用 ActionScript 时,主类必须扩展 flash.display.Sprite。

与所有基于 Flex 应用程序类似,使用 Flex 框架构建的 AIR 应用程序包含一个主 MXML 文件。桌面 AIR 应用程序将 WindowedApplication 组件(而不是 Application 组件)用作根元素。WindowedApplication 组件提供用于控制应用程序及其初始窗口的属性、方法和事件。对于 AIR 不支持多窗口的平台和配置文件,请继续使用 Application 组件。在移动 Flex 应用程序中,还可以使用 View 或 TabbedViewNavigatorApplication 组件。

以下过程将创建“Hello World”应用程序:

  1. 使用文本编辑器创建名为 HelloWorld.mxml 的文件并添加以下 MXML 代码:

    <?xml version="1.0" encoding="utf-8"?> 
    <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
                           xmlns:s="library://ns.adobe.com/flex/spark" 
                           xmlns:mx="library://ns.adobe.com/flex/mx" 
                           title="Hello World"> 
    </s:WindowedApplication>
  2. 接下来,向应用程序添加 Label 组件(将其放置在 WindowedApplication 标记的内部)。

  3. 将 Label 组件的 text 属性设置为 "Hello AIR"

  4. 将布局限制设置为始终居中。

    以下示例显示到目前为止的代码:

    <?xml version="1.0" encoding="utf-8"?> 
    <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
                           xmlns:s="library://ns.adobe.com/flex/spark" 
                           xmlns:mx="library://ns.adobe.com/flex/mx" 
                           title="Hello World"> 
         
        <s:Label text="Hello AIR" horizontalCenter="0" verticalCenter="0"/> 
    </s:WindowedApplication>

编译应用程序

在运行和调试应用程序之前,需要先使用 amxmlc 编译器将 MXML 代码编译成 SWF 文件。可以在 Flex SDK 的 bin 目录中找到 amxmlc 编译器。如果需要,可以将计算机的路径环境设置为包含 Flex SDK bin 目录。设置路径后,可以更方便地在命令行下运行实用程序。

  1. 打开命令解释程序或终端并导航到 AIR 应用程序的项目文件夹。

  2. 输入以下命令:

    amxmlc HelloWorld.mxml 

运行 amxmlc 会生成 HelloWorld.swf ,它包含应用程序的编译代码。

注: 如果应用程序无法编译,请修正语法或拼写错误。错误和警告显示在用于运行 amxmlc 编译器的控制台窗口中。

有关详细信息,请参阅 为 AIR 编译 MXML 和 ActionScript 源文件

测试应用程序

若要从命令行运行和测试应用程序,请使用 AIR Debug Launcher (ADL) 启动使用其应用程序描述符文件的应用程序。(可以在 Flex SDK 的 bin 目录中找到 ADL。)

在命令提示符下,输入以下命令:
adl HelloWorld-app.xml 

生成的 AIR 应用程序如下图所示:

通过使用 Label 控件的 horizontalCenter 和 verticalCenter 属性,文本位于窗口的中心位置。移动窗口或调整窗口大小,像对任何其他桌面应用程序所做的那样。

有关详细信息,请参阅 AIR Debug Launcher (ADL)

创建 AIR 安装文件

在成功运行应用程序后,可以使用 ADT 实用程序将应用程序打包到一个 AIR 安装文件中。AIR 安装文件是包含所有应用程序文件的存档文件,您可以将其分发给用户。必须先安装 Adobe AIR,然后才能安装打包的 AIR 文件。

为了确保应用程序安全,所有 AIR 安装文件必须经过数字签名。为便于开发,您可以使用 ADT 或其他证书生成工具生成一个基本的自签名证书。还可以从商用认证机构购买商用代码签名证书。用户安装自签名 AIR 文件时,发行商在安装过程中会显示为“未知”。这是因为自签名证书仅确保 AIR 文件自创建后没有被更改。而无法阻止某人自签名一个伪装的 AIR 文件并将其显示为您的应用程序。对于公开发布的 AIR 文件,强烈建议使用可验证的商用证书。有关 AIR 安全问题的概述,请参阅 AIR 安全性 (针对 ActionScript 开发人员)或 AIR 安全性 (针对 HTML 开发人员)。

生成自签名证书和密钥对

在命令提示符下,输入以下命令(可以在 Flex SDK 的 bin 目录中找到 ADT 可执行文件):
adt -certificate -cn SelfSigned 1024-RSA sampleCert.pfx samplePassword

此示例使用了证书允许设置的最少数量的属性。密钥类型必须为 1024-RSA 2048-RSA (请参阅 对 AIR 应用程序进行签名 )。

创建 AIR 包

在命令提示符下,输入以下命令(在一行中):
adt -package -storetype pkcs12 -keystore sampleCert.pfx HelloWorld.air 
HelloWorld-app.xml HelloWorld.swf

系统将提示您输入 keystore 文件密码。键入密码并按 Enter。出于安全方面的考虑,不显示密码字符。

HelloWorld.air 参数表示 ADT 生成的 AIR 文件。HelloWorld-app.xml 表示应用程序描述符文件。后面的参数表示应用程序所使用的文件。此示例只使用三个文件,但您可以包括任意数量的文件和目录。

在创建 AIR 包后,可以通过双击该包文件来安装和运行应用程序。也可在解释程序或命令窗口中键入 AIR 文件名作为命令。

有关详细信息,请参阅 对桌面 AIR 安装文件进行打包