将扩展的 ActionScript 端构建到 SWC 文件中。SWC 文件是一个 ActionScript 库,其中包含您的 ActionScript 类和其他资源(如其图像和字符串)的存档文件。
在打包本机扩展时,您需要 SWC 文件和一个单独的 library.swf 文件,后者可从 SWC 文件中提取。SWC 文件提供有关创作和编译的 ActionScript 定义。library.swf 提供特定平台所使用的 ActionScript 实现。如果扩展的不同目标平台需要不同的 ActionScript 实现,请创建多个 SWC 库并为每个平台分别提取 library.swf 文件。不过,最佳做法是所有 ActionScript 实现都有相同的公共接口。(ANE 包中只能包含一个 SWC 文件。)
SWC 文件包含一个名为 library.swf 的文件。有关详细信息,请参阅
ANE 包中的 SWC 文件和 SWF 文件
。
使用下列方式之一构建 SWC 文件:
-
使用 Adobe Flash Builder 创建 Flex 库项目。
在构建 Flex 库项目时,Flash Builder 创建一个 SWC 文件。请参阅
创建 Flex 库项目
。
在创建 Flex 库项目时,确保选择该选项以包括 Adobe AIR 库。
确保将 SWC 编译为正确版本的 SWF 格式。针对 AIR 2.7 使用 SWF 11、针对 AIR 3 使用 SWF 13、针对 AIR 3.1 使用 SWF 14 等等。您可以在项目的属性中设置 SWF 文件格式版本。选择 ActionScript 编译器并输入以下附加编译器参数:
-swf-version 17
注:
可以使用 Flex SDK bin 目录中的
swfdump
来检查任何 SWF 文件的 SWF 文件格式版本:
swfdump myFlexLibraryProjectSWF.swf
-
使用命令行工具 acompc 为 AIR 生成 Flex 库项目。此工具是随 Flex SDK 提供的组件编译器。如果没有使用 Flash Builder,可以直接使用 acompc。请参阅
使用组件编译器 compc
。
例如:
acompc -source-path $HOME/myExtension/actionScript/src
-include-classes sample.extension.MyExtensionClass sample.extension.MyExtensionHelperClass
-swf-version=13
-output $HOME/myExtension/output/sample.extension.myExtension.swc
注:
如果您的 ActionScript 库使用任何外部资源,请使用 ADT 将它们打包到 ANE 文件中。请参阅
创建本机扩展包
。
SWF 版本兼容性
编译 ActionScript 库时指定的 SWF 版本是决定扩展是否与 AIR 应用程序兼容的一个因素,另一个因素是扩展描述符命名空间。扩展的 SWF 版本不能超过主应用程序 SWF 文件的 SWF 版本:
兼容的 AIR 应用程序版本
|
ANE SWF 版本
|
扩展命名空间
|
3.0+
|
10-13
|
ns.adobe.com/air/extension/2.5
|
3.1+
|
14
|
ns.adobe.com/air/extension/3.1
|
3.2+
|
15
|
ns.adobe.com/air/extension/3.2
|
3.3+
|
16
|
ns.adobe.com/air/extension/3.3
|
3.4+
|
17
|
ns.adobe.com/air/extension/3.4
|
3.5+
|
18
|
ns.adobe.com/air/extension/3.5
|
3.6+
|
19
|
ns.adobe.com/air/extension/3.6
|
3.7+
|
20
|
ns.adobe.com/air/extension/3.7
|
注:
平台选项 (platform.xml) 文件需要
ns.adobe.com/air/extension/3.1
或更高版本的命名空间。如果您使用
‑platformoptions
标志来打包 ANE,则必须指定
ns.adobe.com/air/extension/3.1
或更高版本以及高于或等于 14 的 SWC 版本。某些平台选项文件功能需要更高版本的 AIR 命名空间和 SWF。
|
|
|