FDTでコンパイル時に一部のコードを無視させる
Posted:{ 2010.05.28 05:58:19 }
FDTでswfをコンパイル時に、条件をつけて「一部のコードを無視させる」方法です。
Conditional Compilation With FDT – ActionScriptWiki
(エキサイト翻訳)
/*FDT_IGNORE*/キーワードを使用することによって、コードのある一定の領域を無視させることができる。
なるほどー。(・∀・)
どういう事が出来る?
例えば下記のようなコードを”Compiler Arguments” に設定してコンパイル。
-define=CONFIG::Debug,true
-define+=CONFIG::Release,false
すると、下記コードの trace( ‘Debug’ )部分のみが実行される。(もちろん逆も出来る)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | function foo(): void { /*FDT_IGNORE*/ CONFIG::Debug { /*FDT_IGNORE*/ trace( 'Debug' ); /*FDT_IGNORE*/ } CONFIG::Release { /*FDT_IGNORE*/ trace( 'Release' ); /*FDT_IGNORE*/ } /*FDT_IGNORE*/ } |
“Compiler Arguments” の設定方法
設定方法は2通り。(もっとあるかな?)
[1] Run/Debug Configrationウィンドウで設定
[Run/Debug Configration...] > [Compiler Argumentsタブ] > [Use launcher specific compilerarguments]
をチェックし入力。

[2]ANTで指定してコンパイルする。
fdt.launch.application タスクのプロパティで設定。
ex)
1 2 3 4 5 6 7 | <fdt.launch.application projectname="${flashproject.name}" mainclass="${src.dir}/Index.as" target="${debug.dir}/index.swf" startswf="true" compilerarguments="-define=CONFIG::Debug,true -define+=CONFIG::Release,false" /> |
※ANTって何?ってかたはこちら
[1]の方法はいちいち入力し直さなきゃいけないので、[2]がよさげ?です。
ProgressionでDebugger実行を出し分け
つまり、debug部分に、Debugger.addTarget( manager );を書けばProgressionでリリースとデバッグのコンパイルをさくっと分けられますね!
ということで、以前作った ” Progression プロジェクトテンプレート ” をバージョンアップして、
デバッグリリースビルドをちゃんと書き出せるようにしました。
※前のVerはなんちゃって出し分けだったので( ´д`; )
ダウンロードはこちら。
FDT_IGNORE テンプレート
FDT_IGNORE テンプレートも作成しました。
これで、コードのどの部分にでも、さくっと、条件付きで書き出せるコードが書けちゃいます。
FDT4 > 環境設定 > FDT > Editor > Templates
を開いて、[import]して下さい。
(そこで[New]して下記をコピペでもOK!)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | //-define=CONFIG::Debug,true //-define+=CONFIG::Release,false /*FDT_IGNORE*/ CONFIG::Debug { /*FDT_IGNORE*/ trace( 'Debug' ); /*FDT_IGNORE*/ } CONFIG::Release { /*FDT_IGNORE*/ trace( 'Release' ); /*FDT_IGNORE*/ } /*FDT_IGNORE*/ |
関連記事
- [AS3][FDT] 意外と使えるAS3のFDTテンプレート10個
- FDT 操作一発で “swfコンパイル”>”FTP”>”Firefoxでリロード表示”する方法
- [FDT5][ANE] FDT5 で ANE アプリをコンパイルする(サンプルソース付)
- FDTでANTを使って色々な処理を自動化!
- [FDT4] Progression(4.0.22) プロジェクトテンプレート








