Компиляторы ActionScript

Перед включением в приложение AIR код ActionScript и MXML требуется скомпилировать. Если используется интегрированная среда разработки (ИСР), например Adobe Flash Builder или Adobe Flash Professional, она выполняет компиляцию в фоновом режиме. Если ИСР не используется или используется сценарий сборки, компиляторы ActionScript для создания SWF-файлов можно вызвать из командной строки.

Сведения об инструментах командной строки AIR в пакете Flex SDK

Используемые для создания приложения Adobe AIR инструменты командной строки вызывают соответствующие инструменты, используемые для создания приложений:

  • amxmlc вызывает mxmlc для компиляции классов приложения

  • acompc вызывает compc для компиляции классов библиотек и компонентов

  • aasdoc вызывает asdoc для создания файлов документации из комментариев в исходном коде

Единственное отличие между версиями служебных программ Flex и AIR заключается в том, что версии AIR загружают параметры конфигурации из файла air-config.xml, на не flex-config.xml.

Полное описание инструментов библиотеки Flex SDK и их параметров командной строки см. в документации Flex . Здесь содержится лишь краткое описание инструментово Flex SDK, необходимое для понимания разницы между созданием приложений Flex и приложений AIR.

Настройка компилятора

Обычно параметры компиляции вводятся в командной строке и одном из файлов конфигурации. В глобальном файле конфигурации Flex SDK обычно хранятся значения по умолчанию, используемые каждый раз при запуске компиляторов. Чтобы настроить Flex SDK под собственную среду разработки, внесите изменения в этот файл. Существует два глобальных файла конфигурации Flex, расположенные в папке frameworks в каталоге установки Flex SDK. air-config.xml — используется при запуске компилятора amxmlc. Этот файл настраивает компилятор для AIR путем включения библиотек AIR. flex-config.xml file — используется при запуске компилятора mxmlc.

Значения по умолчанию можно оставить на время ознакомления с Flex и AIR, однако при работе над полномасштабным проектом рекомендуется подробно изучить различные варианты их настройки. В локальном файле конфигурации можно указать значения параметров компилятора для данного проекта, который имеет приоритет над глобальными значениями для данного проекта.

Примечание. Для приложений AIR не существует специальных параметров компиляции, однако при компиляции приложения AIR необходимы библиотеки AIR. Обычно ссылки на эти библиотеки размещаются в файле конфигурации проекта, в файле инструмента для создания, например Ant, или непосредственно в командной строке.

Компиляция исходных файлов MXML и ActionScript для AIR

Для компиляции файлов 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>

Компиляция компонента AIR или библиотеки кодов (Flex)

Используйте компилятор acompc для компиляции библиотек AIR и независимых компонентов. Компилятор компонента acompc во многом похож на amxmlc, но есть и ряд отличий:

  • Необходимо указать, какие классы в коде необходимо включить в библиотеку или компонент.

  • Команда acompc не ищет файл локальной конфигурации автоматически. Для использования файла конфигурации проекта необходимо задать параметр –load-config.

Команда acompc вызывает стандартный для Flex компилятор компонента compc, но загружает его параметры конфигурации из файла air-config.xml (не из flex-config.xml ).

Файл конфигурации компилятора компонента

Используйте файл локальной конфигурации, чтобы не вводить вручную (и, возможно, с ошибками) в командную строку исходный путь и имена классов. Добавьте параметр -load-config к командной строке acompc, чтобы загрузить файл локальной конфигурации.

В примере ниже показана конфигурация для создания библиотеки с помощью двух классов: ParticleManager и Particle, оба включены в пакет com.adobe.samples.particles . Файлы классов расположены в папке source/com/adobe/samples/particles .

<flex-config> 
    <compiler> 
        <source-path> 
            <path-element>source</path-element> 
        </source-path> 
    </compiler> 
    <include-classes> 
        <class>com.adobe.samples.particles.ParticleManager</class> 
        <class>com.adobe.samples.particles.Particle</class> 
    </include-classes> 
</flex-config>

Для компиляции библиотеки с помощью файла конфигурации ParticleLib-config.xml введите следующее:

acompc -load-config ParticleLib-config.xml -output ParticleLib.swc

Для выполнения того же действия целиком из командной строки введите следующее:

acompc -source-path source -include-classes com.adobe.samples.particles.Particle  
com.adobe.samples.particles.ParticleManager -output ParticleLib.swc

(Введите всю команду в одну строку или воспользуйтесь символом продолжения строки).

Примеры acompc

Предполагается, что используется файл конфигурации myLib-config.xml .

Компиляция компонента или библиотеки AIR:

acompc -load-config myLib-config.xml -output lib/myLib.swc

Компиляция библиотеки в совместном доступе с средой выполнения:

acompc -load-config myLib-config.xml -directory -output lib

(Перед тем как вызывать команду, убедитесь, что папка lib существует и пуста).