Flash MX 2004でハマりがちな問題点 [Edit]

Flash MX 2004でスクリプトを書いたとき、MXからの変更点でハマりがちな項目に触れておきます。

[1]変数(識別子)の大文字・小文字は区別されます
もっとも、同じ変数を場所によって大文字にしたり、小文字にしたり無頓着に書くこと自体、ケアレスミスの元です。MX以前であっても、大文字・小文字は統一して使うべきでしょう(Macromediaテクニカルノート[Flash での命名術]参照)。

[2]未定義(undefined)の変数を処理した結果が、大きく異なります
数値として演算するとNaNを返し、文字列として扱うと"undefined"というストリングになります。ですから、初期値を設定せずにつぎのようなカウントアップを行うと、いつまで経っても変数値はNaNのままです。

++i; // 変数iをここで初めて使用
// 永久にNaN

MXまではFlash 4からの仕様で、数値演算なら0、文字扱いなら空白文字""に気を利かせて変換されました。MX 2004からは、これが通用しません。被害者続出の予感です。

[3]ストリングのブール(論理)値評価が変わりました
ストリングが代入された変数を単独でif条件に指定すると、その長さ(String.length)が0より大きい、つまり空白文字("")でなければ、trueとして評価されます。

my_str = "Fumio Mad Scripter Nonaka";
if (my_str) { // 空白文字""ではないので
 // 処理が実行される
}

MXまでは、"0"以外の数字がtrueで、"0"や通常のテキストはfalseと評価されました。

Flash MX 2004のActionScriptにおける仕様のおもな変更について詳しくは、[ECMA-262第4版準拠]をご参照ください。

コメント

この記事へのコメント

  1. 1.kanno(2007年06月25日 16:51)

    参考になりました

その他の記事