AS3でライブラリをリンクしてコンパイルする方法
前回AS3でコマンドラインでライブラリをリンクしてコンパイルする方法がわからなかったので調べてみました。
Javaでいうところのクラスパスの話ですね。
1. mxmlcコマンドにオプションをつける
以下のような構成を考えてください。
├ Hoge.as ├ libs │ ├ lib1.swc └ lib2.swc
以下のようなコマンドでリンクしてコンパイルできます。
mxmlc -library-path+=libs Hoge.as
library-pathのオプションでライブラリの位置を指定してやります。
=ではなく+=なのは、=にすると既存のライブラリパスが上書きされてしまうからです。
フォルダを指定すると、そのフォルダ以下にあるSWCファイルをまとめてリンクすることができます。Javaだとフォルダ単位の指定はできないので便利ですね。
SWFを直接指定する場合は、以下のようになります。
mxmlc -library-path+=libs\lib1.swc,libs\lib2.swc Hoge.as
複数の指定をする場合はカンマ区切りにします。
2. flex-config.xmlで指定する
├ Hoge.as ├ Hoge-config.xml ├ libs │ ├ lib1.swc └ lib2.swc
ASファイルまたはMXMLファイルの名前に-config.xmlをつけたものを同じフォルダに配置すると、1のようにオプションを付けなくてもHoge-config.xmlに書いてあるオプションでコンパイルを実行してくれます。
以下がHoge-config.xmlの内容です。
<flex-config> <compiler> <library-path append="true"> <path-element>libs</path-element> </library-path> </compiler> </flex-config>
このままmxmlcコマンドを実行すればリンクされます。
append="true"を指定しないと、既存のlibrary-pathが上書きされてしまうので注意がいります。
path-elementを追加すれば複数指定することができます。