ActionScript 3.0 のコンパイル定数の指定

前回は、コンパイル定数を使ってコンパイルする行を選択する方法でした。今回は、コードに値を渡す方法についてです。

文字列、数値の指定

コンパイル定数には Boolean 以外にも String や Number 型の値を指定できます。コード内では、この値をグローバル変数として利用することができます。(もちろん Boolean 型の値も渡せます)

private var foo:int = MY_CONFIG::foo;
private var bar:String = MY_CONFIG::bar;
 

この際、暗黙の型変換は行われません。コンパイル定数の値は、代入する変数の型に合わせる必要があります。上の例であれば、foo には数値、bar には文字列を指定します。下は Flash Professional の設定パネルから値を指定する場合の例です。

MY_CONFIG::foo 1 
MY_CONFIG::bar "1"
 

文字列を定数の値として指定する場合は、必ずダブルクォーテーション (") またはシングルクォーテーション (') で囲むようにします。

コマンドラインからコンパイル定数の値を指定する時は、ダブルクォーテーションで値を囲むのが基本です。 (Boolean と Number は囲まなくても良いようですが。) 上の設定と同じものをコマンドラインから指定すると下のようになります。

-define+=MY_CONFIG::foo,"1" -define+=MY_CONFIG::bar,"\"1\""
 

値が文字列の場合、文字列であることを示すためのダブルクォーテーションと、コンパイル定数の値であることを示すダブルクォーテーションが入れ子になるため、内側のダブルクォーテーションをバックスラッシュ (\) でエスケープしています。このような場合は、シングルクォーテーションを使った方が読みやすいかも (?) です。

-define+=MY_CONFIG::foo,"1" -define+=MY_CONFIG::bar,"'1'"
 

空文字列を指定する場合は、以下のように指定します。

-define+=MY_CONFIG::debug,"''"
 

flex-config.xml ファイルに指定する場合も、値をダブルクォーテーションまたはシングルクォーテーションで囲みます。

<define>
  <name>MY_CONFIG::bar</name>
  <value>'1'</value>
</define>
<define>
  <name>MY_CONFIG::debug</name>
  <value>""</value>
</define>
 

式の指定

コンパイル定数には、式を指定してコンパイル時にその値を評価する、という使い方もあります。

例えば、(あまり意味の無い例ですが) 下のような指定をすると、foo の値は Boolean 型の true になります。

-define+=MY_CONFIG::foo,"0 < 1"
 

計算式を書くこともできます。下の場合 foo の値は 4 になります。型は Number です。

-define+=MY_CONFIG::foo,"5 - 1"
 

もし 「5 - 1」 という文字列を定数として渡したければ、以下のように記述します。

-define+=MY_CONFIG::foo,"'5 - 1'"
 

既に一度書いていますが、上の 2 つの例のダブルクォーテーションは、mxmlc コンパイラーに、値を正しく渡すために付けています。Flash Professional 内のパネルで設定する場合は、値が文字列の場合のみダブルクォーテーションで囲みます。

コマンドラインからコンパイル定数を指定する場合は、Boolean 型や Number 型の値であっても常にダブルクォーテーションで囲むようにする方が混乱しなくてよいかもしれません。

さて、式には、他のコンパイル定数の値を含めることができます。下の例では、bar の値は false && true の結果である false になります。

-define+=MY_CONFIG::foo,false
-define+=MY_CONFIG::bar,"MY_CONFIG::foo && true"
 

 

トラックバック(0)

トラックバックURL: http://cuaoar.jp/mt4/mt-tb.cgi/109

コメントする

2014年1月

Sun Mon Tue Wed Thu Fri Sat
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
レンタルサーバー

月別 アーカイブ

Powered by Movable Type 4.261