可使用命令行 MXML 编译器 (amxmlc) 编译 AIR 应用程序的 Adobe® ActionScript® 3.0 和 MXML 资源。(您不需要编译基于 HTML 的应用程序。若要在 Flash Professional 中编译 SWF,只需将影片发布到 SWF 文件。)
编译器加载的 air-config.xml 配置文件指定编译 AIR 应用程序通常所需的 AIR 和 Flex 库。您还可以使用本地项目级配置文件覆盖或添加全局配置的其他选项。通常,创建本地配置文件的最简便方式是编辑全局版本的副本。使用
-load-config
选项可以加载本地文件:
如果对本地配置文件使用特定命名约定,amxmlc 编译器会自动加载本地文件。例如,如果主 MXML 文件为
RunningMan.mxml
,则将本地配置文件命名为
RunningMan-config.xml
。现在,您只需键入以下内容即可编译应用程序:
amxmlc 示例
下面的示例演示如何使用 amxmlc 编译器。(只能编译应用程序的 ActionScript 和 MXML 资源。)
编译 AIR MXML 文件:
amxmlc myApp.mxml
编译和设置输出名称:
amxmlc –output anApp.swf -- myApp.mxml
编译 AIR ActionScript 文件:
amxmlc myApp.as
指定编译器配置文件:
amxmlc –load-config config.xml -- myApp.mxml
从其他配置文件添加其他选项:
amxmlc –load-config+=moreConfig.xml -- myApp.mxml
在命令行中添加库(除了配置文件中的已有库以外):
amxmlc –library-path+=/libs/libOne.swc,/libs/libTwo.swc -- myApp.mxml
在不使用配置文件的情况下编译 AIR MXML 文件 (Win):
mxmlc -library-path [AIR SDK]/frameworks/libs/air/airframework.swc, ^
[AIR SDK]/frameworks/libs/air/airframework.swc, ^
-library-path [Flex SDK]/frameworks/libs/framework.swc ^
-- myApp.mxml
在不使用配置文件的情况下编译 AIR MXML 文件(Mac OS X 或 Linux):
mxmlc -library-path [AIR SDK]/frameworks/libs/air/airframework.swc, \
[AIR SDK]/frameworks/libs/air/airframework.swc, \
-library-path [Flex 3 SDK]/frameworks/libs/framework.swc \
-- myApp.mxml
编译 AIR MXML 文件以便使用运行时共享库:
amxmlc -external-library-path+=../lib/myLib.swc -runtime-shared-libraries=myrsl.swf -- myApp.mxml
编译 AIR MXML 文件以使用 ANE(确保针对 ANE 使用
‑external‑library‑path
):
amxmlc -external-library-path+=../lib/myANE.ane -output=myAneApp.swf -- myAneApp.mxml
使用 Java 编译(将类路径设置为包含
mxmlc.jar
):
java flex2.tools.Compiler +flexlib [Flex SDK 3]/frameworks +configname=air [additional compiler options] -- myApp.mxml
flexlib 选项标识 Flex SDK 框架目录的位置,并使编译器能够查找 flex_config.xml 文件。
使用 Java 编译(未设置类路径):
java -jar [Flex SDK 2]/lib/mxmlc.jar +flexlib [Flex SDK 3]/frameworks +configname=air [additional compiler options] -- myApp.mxml
使用 Apache Ant 调用编译器(此示例使用 Java 任务运行 mxmlc.jar):
<property name="SDK_HOME" value="C:/Flex46SDK"/>
<property name="MAIN_SOURCE_FILE" value="src/myApp.mxml"/>
<property name="DEBUG" value="true"/>
<target name="compile">
<java jar="${MXMLC.JAR}" fork="true" failonerror="true">
<arg value="-debug=${DEBUG}"/>
<arg value="+flexlib=${SDK_HOME}/frameworks"/>
<arg value="+configname=air"/>
<arg value="-file-specs=${MAIN_SOURCE_FILE}"/>
</java>
</target>