2009年12月3日

ActionScript 3.0 の 条件付きコンパイル

ActionScript 3.0 でデバッグ時と、リリース時のコードを分けるには、if 文などを使用して分岐しても良いが、swfにデバッグコードが含まれてしまうため、条件付きコンパイルを使用すると良い。

この方法を使用すると、同名のプロパティやメソッドなどを環境により変更する事ができる。


Flashでの定数定義
「プロファイル」-「スクリプト - 設定」-「定数の構成タブ」で定数を追加する




Flexでの定数定義
mxmlcのコンパイラオプションで指定
mxmlc -define+=CONFIG::DEBUG,true -define+=CONFIG::RELEASE,false ..

flex-config.xmlで指定
<compiler>
    <define>
        <name>CONFIG::DEBUG</name>
        <value>true</value>
    </define>
    <define>
        <name>CONFIG::RELEASE</name>
        <value>false</value>
    </define>
</compiler>

Flex Ant タスクで指定
<mxmlc>
    <define name="CONFIG::DEBUG" value="true"/>
    <define name="CONFIG::RELEASE" value="false"/>
</mxmlc>


コードブロック単位の分岐
public function functionName():void {
    // デバッグ時のみ実行
    CONFIG::DEBUG {
        trace('debug');
    }
    // リリース時のみ実行
    CONFIG::RELEASE {
        trace('release');
    }
}


プロパティ、定数の分岐(同じ名前もOK)
// デバッグ時のみ実行
CONFIG::DEBUG
public var propertyName:String = 'debug';
// リリース時のみ実行
CONFIG::RELEASE
public var propertyName:String = 'release';


関数、メソッド単位の分岐(同じ名前もOK)
// デバッグ時のみ実行
CONFIG::DEBUG
public function methodName():void {
    trace('debug');
}
// リリース時のみ実行
CONFIG::RELEASE
public function methodName():void {
    trace('release');
}

Flash - ActionScript の条件付きコンパイル
Flex - 条件付きコンパイルの使用

0 件のコメント:

コメントを投稿