コンパイラ引数で開発環境毎に設定する内容を切り替える。
条件付きコンパイルと言うらしい。
下記は開発環境、ステージ、本番で設定内容をコンパイラ引数で切り替える例。
CONFIG::DEV
private var xmlUrl:String = "xml/dev.xml";
CONFIG::STAGE
private var xmlUrl:String = "xml/stage.xml";
CONFIG::RELEASE
private var xmlUrl:String = "xml/release.xml";
private function init(event:FlexEvent):void
{
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, function():void {
loader.removeEventListener(Event.COMPLETE, arguments.callee);
var xml : XML = new XML(loader.data);
_url = xml.apiUrl;
});
loader.load(new URLRequest(xmlUrl));
}
コンパイラ引数で、有効にしたい条件の引数を true、無効にしたいものを false にする。
-define=CONFIG::DEV,false -define=CONFIG::STAGE,false -define=CONFIG::RELEASE,true
これでもいいのだけど、切り替える時に変更個所を少なくしたいので、
flex-config.xml を用意して、各条件を false に設定する。
<?xml version="1.0" encoding="utf-8" ?>
<flex-config>
<compiler>
<define>
<name>CONFIG::DEV</name>
<value>false</value>
</define>
<define>
<name>CONFIG::STAGE</name>
<value>false</value>
</define>
<define>
<name>CONFIG::RELEASE</name>
<value>false</value>
</define>
</compiler>
</flex-config>
で、コンパイラ引数で flex-config.xml を読みこむように指定し、
有効にしたい条件のみ true にして設定する。
-load-config+=flex-config.xml -define+=CONFIG::RELEASE,true
flex-config.xml の設定よりもコンパイラ引数の方が優先度が高いので、こちらの設定が有効になる。
まあ、flex-config.xml の設定を変えればいいのだけど、
あくまで引数で切り替えを完結したい時用。
下記、参考にさせて頂いた記事です。ありがとうございます!