Для компиляции файлов Adobe® ActionScript® 3.0 и MXML для приложения AIR можно использовать компилятор командной строки MXML (amxmlc). (Компиляция для HTML-приложений не требуется. Для компиляции SWF-файла во Flash Professional просто опубликуйте видеоролик в SWF-файл.)
Базовый шаблон командной строки для использования инструмента amxmlc имеет следующий вид:
amxmlc [compiler options] -- MyAIRApp.mxml
где
[compiler options]
задает параметры командной строки, используемые для компиляции приложения AIR.
Команда amxmlc вызывает стандартный компилятор Flex mxmlc с дополнительным параметром
+configname=air
. Этот параметр сообщает компилятору, что нужно использовать файл air-config.xml, а не flex-config.xml. В остальном amxmlc идентичен mxmlc.
Компилятор загружает файл конфигурации air-config.xml, в котором задаются библиотеки AIR и Flex, в большинстве случаев необходимые для компиляции приложения AIR. Также для переопределения или дополнения глобальных параметров конфигурации можно воспользоваться локальным файлом конфигурации на уровне проекта. Как правило, проще всего создать файл локальной конфигурации, скопировав и отредактировав его глобальную версию. Локальный файл можно загрузить с помощью
-load-config
:
-load-config=project-config.xml
переопределяет глобальные параметры.
-load-config+=project-config.xml
добавляет значения к тем глобальным параметрам, у которых их более одного, таким как
-library-path
. Глобальные параметры, принимающие только одно значение, переопределяются.
Если для файла локальной конфигурации используется специальное соглашение об именах, компилятор amxmlc автоматически загружает локальный файл. Например, если основной MXML-файл —
RunningMan.mxml
, то файл локальной конфигурации будет называться
RunningMan-config.xml
. Теперь для компиляции приложения нужно ввести всего лишь следующее:
amxmlc RunningMan.mxml
RunningMan-config.xml
загружается автоматически, потому что его имя соответствует имени скомпилированного MXML-файла.
Примеры amxmlc
Ниже приводятся примеры использования компилятора amxmlc. (В приложении компилируются только ресурсы ActionScript и MXML).
Компиляция MXML-файла AIR:
amxmlc myApp.mxml
Компиляция и задание имени вывода:
amxmlc –output anApp.swf -- myApp.mxml
Компиляция MXML-файла 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
Компиляция MXML-файла AIR без файла конфигурации (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
Компиляция MXML-файла AIR без файла конфигурации (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
Компиляция MXML-файла AIR для использования библиотеки в общем доступе с средой выполнения:
amxmlc -external-library-path+=../lib/myLib.swc -runtime-shared-libraries=myrsl.swf -- myApp.mxml
Чтобы использовать ANE, cкомпилируйте файл MXML AIR (для 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 определяет расположение каталога frameworks комплекта 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>