Adobe Flex 3 ヘルプ

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

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

CONFIG::debugging {
    // Execute debugging code here.
}

定数を渡すには、compiler.define コンパイラオプションを使用します。定数には、コンパイル時に ActionScript で評価されるブール値、文字列、数値、または式を指定できます。コンパイル後に、この定数は、アプリケーションソースコード内のグローバル定数としてアクセス可能になります。

define オプションを使用するには、定数、変数名、値の設定名前空間を次のシンタックスを使用して定義します。

-define=namespace::variable_name,value

設定名前空間には、何を指定してもかまいません。次の例は、CONFIG 名前空間の debugging 定数を true に定義します。

-define=CONFIG::debugging,true

コマンドラインに複数の定数を設定するには、define オプションを複数回使用します。次に例を示します。

mxmlc -define=CONFIG::debugging,true -define=CONFIG::release,false MyApp.mxml

この定数の値をコマンドラインではなく flex-config.xml ファイルに設定するには、次の例のように記述します。

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

Flex Ant タスクでは、定数を define 要素で設定できます。次に例を示します。

<mxmlc ... >
    <define name="CONFIG::debugging" value="true"/>
    <define name="CONFIG::release" value="false"/>
</mxmlc>

インライン定数の使用

ActionScript でインライン定数を使用できます。ブール値は、関数、クラスおよび変数の最上位の定義に条件を設定するために使用できます。使用する方法は、C または C++ で #IFDEF プリプロセッサコマンドを使用する場合とほぼ同じです。ブール値の定数は、メタデータまたは import ステートメントの条件付けに使用することはできません。

次の例では、アプリケーションのコンパイル時にコンパイラが使用するクラス定義の条件を設定します。

// compilers/MyButton.as
package  {
    import mx.controls.Button;

    CONFIG::debugging
    public class MyButton extends Button {    
        public function MyButton() {
            super();
            // Set the label text to blue.
            setStyle("color", 0x0000FF);
        }
    }

    CONFIG::release
    public class MyButton extends Button {    
        public function MyButton() {
            super();
            // Set the label text to red.
            setStyle("color", 0xFF0000);
        }
    }
}

文字列と数値をアプリケーションに渡し、それらをインライン定数として使用することもできます。方法は、C または C++ で #define ディレクトリを使用する場合と同じです。例えば、NAMES::Company という名前の値を渡す場合、ActionSctipt ステートメントを使用して、この値でアプリケーション内の定数を置き換えます。次に例を示します。

private static const companyName:String = NAMES::Company;

式を渡す

定数の値と同様に、コンパイル時に評価される式を渡すことができます。次の例は false と評価されます。

-define+=CONFIG::myConst,"1 > 2"

次の例は 3 と評価されます。

-define+=CONFIG::myConst,"4 - 1"

式には、定数やその他の設定値を含めることができます。次に例を示します。

-define+=CONFIG::bool2,false -define+=CONFIG::and1,"CONFIG::bool2 && false"

通常は、mxmlc コンパイラで 1 つの引数として正しく解析されるように、定数はすべて二重引用符で囲む必要があります。

文字列を渡す

文字列を渡す場合、コンパイラで正しく解析されるように、引用符を追加する必要があります。

コマンドライン上で文字列を定義するには、エスケープした引用符で囲んだうえで二重引用符で囲むか("¥"Adobe Systems¥"" または 'Adobe Systems¥'")、一重引用符と二重引用符の両方で囲みます("'Adobe Systems'")。

次の例は、それぞれの方法で、コマンドラインで文字列を指定します。

-define+=NAMES::Company,"'Adobe Systems'" -define+=NAMES::Ticker,"¥"ADBE¥""

設定ファイルで文字列を定義するには、一重引用符または二重引用符で囲みます。次に例を示します。

<define>
    <name>NAMES::Company</name>
    <value>'Adobe Systems'</value>
</define>
<define>
    <name>NAMES::Ticker</name>
    <value>"ADBE"</value>
</define>

コマンドラインで空の文字列を渡すには、一重引用符を二重引用符で囲んだものを使用します。次に例を示します。

-define+=CONFIG::debugging,"鋳" 

設定ファイルで空の文字列を渡すには、二重引用符("")または一重引用符()を使用します。

 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート