ひとつのFlashDevelopのプロジェクトファイルから、設定や名前のことなるswfを作りたい場合、わざわざ特別なことをしなくても、書き出しの度に設定を変えたり、binの中のswfファイルをリネームすれば目的達成も可能です。ただ、数十回、数百回リネーム作業が必要であることがあらかじめわかっているなら、なるべく自動化したい。そんな時のための方法です。
元ネタはこちら
FlashDevelop で AS ファイル別に swf を吐きだす方法
http://blog.bk-zen.com/2009/09/28/244/
なのだけれども、自分の目的とちょっと違ってた。
そんでもって、ここでも2時間くらい試行錯誤してしまった。次は5分で思い出せるようにメモ的。
ポイントは三つ、「クイックビルド」「コンパイルオプションを書く場所」「コンパイルオプション」です。
クイックビルド
FlashDevelopにはクイックビルドという機能があって、ASファイル個別にコンパイル設定を指定できます。
クイックビルド自体の説明は次が参考になります。
http://flashdevelop.jp/クイックビルド
コンパイルオプションを書く場所
コメントとして、@mxmlcに続けてコンパイルオプションを書きます。
具体的にコードを示すと、次になります。ハイライトで示している行がポイントです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
package { import flash.display.Sprite; import net.hires.debug.Stats; /** * @mxmlc -output bin/output.swf -load-config+=obj/TestConfig.xml -debug -default-size 400 300 * @author umhr */ public class Main extends Sprite { public function Main():void { addChild(new Stats()); trace("hoge"); } } } |
プロジェクト名はMainなんだけど、binディレクトリに、output.swfを書き出す設定です。
コンパイルオプション
ここでは、一行で書かれていますが、分解して見ていきましょう。
6 |
@mxmlc -output bin/output.swf -load-config+=obj/TestConfig.xml -debug -default-size 400 300 |
@mxmlc | コンパイルオプションであることを示しています。 |
-output bin/output.swf | 出力先をbin/output.swfに指定しています。省略した場合、プロジェクトのルートディレクトリにクラス名で書き出されます。 |
-load-config+=obj/TestConfig.xml | Config.xmlの場所を指定します。省略した場合、この行のコンパイラオプションの設定のみによって書き出されます。 |
-debug | デバッグビルドになるのでtraceの確認ができます。省略した場合、リリースビルドになるのでtraceが出ません。 |
-default-size 400 300 | ステージサイズを指定します。省略した場合、500,375で書き出されます。 |
ここでは、obj/TestConfig.xmlに注目してください。
実は今回の場合、これが無いと、コンパイルできません。なぜなら、外部ライブラリのStatsを使っているからです。
TestConfig.xmlには次のような行があります。
1 2 3 |
<library-path append="true"> <path-element>C:Main\lib\Stats.swc</path-element> </library-path> |
これによりライブラリの位置が指定されているわけです。
なのでもし、obj/TestConfig.xmlを指定しない場合には、代わりにライブラリのパスを指定する必要があります。
今回の場合は、次のようになります。
1 |
-compiler.library-path lib |
mxmlcとして一行にまとめると、次になります。
1 |
@mxmlc -output bin/output.swf -compiler.library-path lib -debug -default-size 400 300 |
コンパイルオプションは他にもたくさんあります。次のページの下のほう「おまけ」も参考にしてください。
http://www.mztm.jp/2011/11/29/fdasdoc/