FlashDevelop で件付きコンパイルを使ってみる

mxmlcコンパイルオプションが便利かも。

条件付きコンパイルの使用 (livedocs)

特定のビルドでコードブロックを包含または除外するには、条件付きコンパイルを使用します。mxmlc コンパイルでは、コンパイル時に定数の値をアプリケーションに渡すことができます。通常は、デバッグ用コードや実装用コードなどのコードブロックの包含または除外に使用されるブール値を渡します。次の例では、インライン定数のブール値を使用して、コードブロックの条件付けを行います。

実用的な使い方

例えば、開発版とリリース版で、読み込むべき XML のパスが変わる場合、条件付きコンパイルで解決できる。(外部 XML で管理すればいいけれど、それは置いておいて)。

簡単な設定方法 (FlashDevelop)

まず、flex-config.xml などとして、以下の XML を用意する。ファイルは as3proj と同じディレクトリに置いておく。

<flex-config>
<compiler>
<define>
<name>CONFIG::release</name>
<value>true</value>
</define>
<define>
<name>CONFIG::debugging</name>
<value>false</value>
</define>
</compiler>
</flex-config>

次に、ActionScript では、変数を以下のように宣言する。書き方が特殊。

CONFIG::release
private var url:String = "http://example.com/release.xml";
CONFIG::debugging
private var url:String = "http://example.com/debugging.xml";

先ほどの flex-config.xmlmxmlc に渡さないといけないので、FlashDevelop の Project -> Properties -> Compiler Options -> Additional Compiler Options に

-load-config+=flex-config.xml

を追記する。

これで OK。flex-config.xml を編集することで、コンパイル時に値を切り替えることができる。