Adobe AIR 完整入门教程

第一部分:什么是 Adobe AIR?

在开始之前,我们首先要明白 AIR 是什么,以及它能做什么。

flash air教程
(图片来源网络,侵删)

核心定义 Adobe AIR (Adobe Integrated Runtime) 是一个跨平台的运行时环境,由 Adobe 开发,它的核心思想是:让你使用熟悉的 Web 技术(HTML, CSS, JavaScript)或 Adobe 的 Flash 技术(ActionScript, Flex)来构建和部署桌面应用程序和移动应用程序。

一个生动的比喻 你可以把 AIR 想象成一个“包装盒”或者“容器”。

  • 盒子里装的是什么? 你的应用代码,比如一个用 HTML/CSS/JS 写的网站。
  • 这个盒子有什么用? 它为你的网站提供了传统桌面应用的能力,
    • 文件系统访问:可以读取和写入用户的电脑文件。
    • 本地数据库:可以在设备上存储数据(如 SQLite)。
    • 原生窗口:创建和控制桌面窗口,而不是在浏览器里。
    • 系统通知:在任务栏或系统托盘显示通知。
    • 硬件交互:访问摄像头、麦克风、加速度计等设备。
    • 拖放操作:让用户可以直接把文件拖到你的应用窗口里。

AIR 的核心优势

  • 跨平台:一套代码,可以打包成 Windows、macOS、Android 和 iOS 的应用,大大减少了多平台开发的成本。
  • 技术复用:如果你已经是 Web 开发者(前端)或 Flash 开发者,学习成本极低,可以直接利用现有技能。
  • 快速原型:开发周期短,可以快速将想法变为可运行的原型。
  • 强大的离线能力:天生支持离线运行,数据存储在本地。

适用场景

flash air教程
(图片来源网络,侵删)
  • 桌面工具:文件管理器、FTP 客户端、聊天软件、简单的生产力工具。
  • 移动应用展示类应用、电子书阅读器、简单的游戏、企业内部工具。
  • Kiosk 应用:在信息亭、展会上展示内容的应用。

第二部分:开发环境准备

在开始编码之前,你需要准备好工具。

必需软件

  • 代码编辑器
    • Visual Studio Code (推荐):免费、强大、插件丰富,推荐安装 Live Server 插件用于本地调试。
    • Adobe Flash Builder / Adobe Animate:如果你使用 ActionScript/Flex,这是官方 IDE。
  • AIR SDK (Software Development Kit):这是编译和打包应用的核心,你可以从 Adobe 官网下载(现在需要 Adobe ID 登录),或者使用第三方维护的 SDK,如 FlexJS SDKRust 编译器 Haxe 的 SDK。
  • (可选)Adobe AIR Debug Launcher (ADL):用于在本地快速测试 AIR 应用,通常包含在 AIR SDK 中。

环境配置(以 VS Code + AIR SDK 为例)

  1. 下载 AIR SDK:从 Adobe 官网下载并解压到一个固定位置,C:\air_sdk
  2. 配置环境变量
    • 在系统环境变量中,新建一个变量 AIR_SDK_HOME,值为你的 SDK 路径(如 C:\air_sdk)。
    • 编辑 Path 变量,添加 %AIR_SDK_HOME%\bin
    • 这样你就可以在命令行的任何位置直接使用 adt(Adobe Tool)命令了。
  3. 验证安装:打开命令行(CMD 或 PowerShell),输入 adt -version,如果显示版本号,说明配置成功。

第三部分:你的第一个 AIR 应用 (HTML/JS 方式)

我们将创建一个最简单的桌面应用,它只是一个窗口,里面显示一个网页。

flash air教程
(图片来源网络,侵删)

目标:创建一个桌面窗口,显示 "Hello, AIR World!"。

步骤 1:创建项目文件夹 在你的电脑上创建一个新文件夹,MyFirstAIRApp

步骤 2:编写 HTML 文件MyFirstAIRApp 文件夹中,创建一个名为 index.html 的文件,内容如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">Hello AIR</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            margin: 0;
            background-color: #f0f0f0;
        }
        h1 {
            color: #333;
        }
    </style>
</head>
<body>
    <h1>Hello, AIR World!</h1>
</body>
</html>

步骤 3:创建 AIR 应用描述文件 (XML) 这是 AIR 应用的“灵魂”,它告诉 AIR 运行时如何创建和管理你的应用。

MyFirstAIRApp 文件夹中,创建一个名为 application.xml 的文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://ns.adobe.com/air/application/34.0">
    <!--
        AIR SDK 版本号,请根据你下载的 SDK 版本修改
        如果你用的是 AIR SDK 34,就写 34.0
    -->
    <id>com.example.helloair</id>
    <versionNumber>1.0.0</versionNumber>
    <filename>HelloAIR</filename>
    <name>Hello AIR App</name>
    <description>My first Adobe AIR application.</description>
    <initialWindow>
        <!-- 窗口标题 -->
        <title>Hello AIR Window</title>
        <!-- 窗口宽度 -->
        <width>600</width>
        <!-- 窗口高度 -->
        <height>400</height>
        <!-- 窗口是否可调整大小 -->
        <resizable>true</resizable>
    </initialWindow>
</application>

注意xmlns 属性中的 0 是 AIR SDK 的版本号,请务必与你下载的版本保持一致。

步骤 4:本地测试 在命令行中,切换到你的项目文件夹 (MyFirstAIRApp),然后运行以下命令:

adl application.xml

如果一切顺利,你应该会看到一个标题为 "Hello AIR Window" 的桌面窗口,里面显示着 "Hello, AIR World!",恭喜你,你的第一个 AIR 应用运行成功了!

步骤 5:打包成安装程序 我们将这个应用打包成一个 .exe (Windows) 或 .app (macOS) 文件,这样别人就可以安装使用了。

在命令行中,继续输入以下命令(以 Windows 为例):

adt -package -storetype pkcs12 -keystore myCert.p12 -storepass mypassword HelloAIR.air application.xml index.html

命令解释

  • adt -package:表示打包。
  • -storetype pkcs12:指定证书类型。
  • -keystore myCert.p12:指定证书文件名,如果文件不存在,adt 会自动创建一个。
  • -storepass mypassword:指定证书密码。请使用你自己的强密码
  • HelloAIR.air:这是打包后的 AIR 安装包文件。
  • application.xml:你的应用描述文件。
  • index.html:你的应用主文件。

执行后,你会得到一个 HelloAIR.air 文件,双击它,就可以像安装普通软件一样安装你的应用了。


第四部分:进阶概念与 API 使用

一个静态的窗口没什么意思,我们来让它动起来,并与系统交互。

使用 AIR API 在 HTML/JS 开发中,你需要通过一个特殊的 JavaScript 对象 window.runtime 来访问 AIR 的原生 API。

示例:获取并显示用户桌面路径

修改你的 index.html 文件,添加一些 JavaScript 代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">Hello AIR</title>
    <style>
        body { font-family: Arial, sans-serif; padding: 20px; }
        #info-box { background-color: #e0e0e0; padding: 15px; border-radius: 5px; }
    </style>
</head>
<body>
    <h1>Hello, AIR World!</h1>
    <div id="info-box">
        <p>正在获取桌面路径...</p>
    </div>
    <script>
        // 检查 AIR API 是否可用
        if (window.runtime) {
            // 使用 File 类来访问文件系统
            var file = runtime.flash.filesystem.File;
            // 获取用户的桌面目录
            var desktopPath = file.desktopDirectory.resolvePath("");
            // 将路径显示在页面上
            document.getElementById('info-box').innerHTML = 
                "<strong>你的桌面路径是:</strong><br>" + desktopPath.nativePath;
        } else {
            document.getElementById('info-box').innerHTML = 
                "此应用未在 Adobe AIR 环境中运行。";
        }
    </script>
</body>
</html>

adl application.xml 重新运行你的应用,你应该会看到窗口中显示了你的电脑桌面文件夹的完整路径,这就是 AIR API 的强大之处!

常用 AIR API 概览

  • 文件系统 (flash.filesystem)
    • File: 代表文件或目录。
    • FileStream: 用于读写文件内容。
  • 本地数据库 (flash.data)
    • SQLConnection: 连接到 SQLite 数据库。
    • SQLStatement: 执行 SQL 查询。
  • 窗口 (flash.display)
    • NativeWindow: 创建和控制原生窗口,可以设置透明度、形状、始终置顶等。
  • 系统 (flash.system)
    • Clipboard: 访问系统剪贴板。
    • NativeApplication: 控制应用本身,如监听退出事件、显示图标菜单。
  • 桌面 (flash.desktop)
    • Icon: 设置应用图标。
    • Notification: 显示系统通知(托盘通知)。

第五部分:AIR 的现状与未来

重要提示:Adobe AIR 已不再是主流技术。

  • 移动端:Adobe 已于 2025 年正式停止了对 AIR 移动应用(iOS/Android)的支持,这意味着你无法再将新的 AIR 项目发布到移动应用商店,并且现有应用在未来也可能因系统更新而无法运行。
  • 桌面端:Adobe 仍然为桌面版 AIR 提供更新和安全补丁,但它不再是 Adobe 的战略重点,许多开发者已经转向了更现代的桌面技术,如 Electron (使用 Web 技术,VS Code, Slack, Discord 都是基于它)、Tauri (更轻量级的 Rust 方案) 或原生开发。

现在还应该学 AIR 吗?

  • 如果你需要维护旧的 AIR 项目:那么这份教程对你至关重要。
  • 如果你是企业开发者,需要快速构建一个跨平台的内部工具:AIR 仍然是一个快速有效的选择,尤其是在你已经熟悉 Flash/ActionScript 的情况下。
  • 如果你是个人学习者或想进入游戏行业:了解 AIR 的历史和原理是有益的,但对于新项目,建议直接学习 UnityGodot 等现代游戏引擎,很多经典 Flash 游戏(如《城堡保卫战》)的移动端移植就是用 AIR 完成的。

第六部分:学习资源与总结

官方资源 (可能已过时但仍有价值)

  • Adobe AIR 开发者中心:曾经的官方文档中心,包含大量教程和 API 参考。
  • Adobe AIR 文档:API 参考,查找特定类和方法的最佳去处。

社区与第三方资源

  • GitHub:搜索 Adobe AIRAIR SDK,可以找到很多开源项目和 SDK 分支。
  • Stack Overflow:搜索 adobe-air 标签,可以找到很多历史问题和解决方案。
  • Haxe 语言:一个现代的编程语言,可以编译成 ActionScript,是很多现代 AIR 开发者的选择。

Adobe AIR 是一个曾经辉煌的跨平台技术,它巧妙地将 Web 和桌面世界连接起来,虽然它的移动时代已经结束,但在桌面端,它依然是一个快速、可靠的选择,尤其适合维护旧项目或开发特定类型的工具。

希望这份教程能帮助你打开 Adobe AIR 的大门,祝你开发愉快!