AIR 用 MXML および ActionScript ソースファイルのコンパイル

AIR アプリケーション用 Adobe® ActionScript® 3.0 および MXML アセットは、コマンドライン MXML コンパイラー(amxmlc)を使用してコンパイルできます(HTML ベースのアプリケーションはコンパイル不要です。SWF を Flash Professional でコンパイルする場合は、ムービーを SWF ファイルにパブリッシュするだけでコンパイルが実行されます)。

amxmlc を使用するコマンドラインの基本的な形式は次のとおりです。

amxmlc [compiler options] -- MyAIRApp.mxml

この [compiler options] には、AIR アプリケーションのコンパイルに使用するコマンドラインオプションを指定します。

amxmlc コマンドは、追加パラメーターとして +configname=air を指定して標準の Flex mxmlc コンパイラーを呼び出します。このパラメーターは、flex-config.xml ファイルではなく air-config.xml ファイルを使用するようコンパイラーに指示します。amxmlc の使用は、それ以外の点では mxmlc を使用することと変わりません。mxmlc コンパイラーと設定ファイルの形式については、Flex 3 ドキュメントライブラリにある『Flex 3 アプリケーションの構築と展開』で説明しています。

コンパイラーで、AIR アプリケーションのコンパイルに通常必要とされる AIR ライブラリおよび Flex ライブラリを指定する、air-config.xml 設定ファイルが読み込まれます。ローカルのプロジェクトレベルの設定ファイルを使用して、グローバル設定をオーバーライドしたり、グローバル設定に追加オプションを追加したりすることもできます。通常、ローカル設定ファイルを作成するには、グローバルバージョンのコピーを編集するのが最も簡単です。ローカルファイルは、-load-config オプションを使用して読み込むことができます。

-load-config=project-config.xml グローバルオプションをオーバーライドします。

-load-config+=project-config.xml -library-path オプションなど、複数の値を指定できるグローバルオプションに追加の値を追加します。1 つの値しか指定できないグローバルオプションはオーバーライドされます。

ローカル設定ファイルに特別の名前付け規則を使用すると、amxmlc コンパイラーでローカルファイルが自動的に読み込まれます。例えば、メイン MXML ファイルが RunningMan.mxml である場合は、ローカル設定ファイルの名前を RunningMan-config.xml にします。今度は、アプリケーションをコンパイルするには、次のように入力するだけです。

amxmlc RunningMan.mxml

RunningMan-config.xml は、コンパイルする MXML ファイルとファイル名が一致するので自動的に読み込まれます。

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 ファイルをコンパイルします(Windows)。

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 ファイルをコンパイルします(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

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 を使用してコンパイラーを起動するには(mxmlc.jar を実行する Java タスクの例):

<property name="SDK_HOME" value="C:/Flex3SDK"/> 
<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>