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.kanno(2007年06月25日 16:51)
参考になりました