コンパイラ引数で設定を切り替える

2011年12月17日 00:43

コンパイラ引数で開発環境毎に設定する内容を切り替える。
条件付きコンパイルと言うらしい。
下記は開発環境、ステージ、本番で設定内容をコンパイラ引数で切り替える例。

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 の設定を変えればいいのだけど、
あくまで引数で切り替えを完結したい時用。

下記、参考にさせて頂いた記事です。ありがとうございます!

カテゴリー: programming タグ:

コメントはまだありません

No comments yet.

TrackBack URL

Leave a comment