將擴展的 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。