ActionScriptでの変数の罠です。仕事で1時間ほどはまったのでメモ。下記の二つのスクリプトを見比べてください。ActionScriptの書き出し設定を1.0のままにして、うっかりActionScript2.0で記述してしまいハマる人もおおいのでは?実は私も・・・
① AS1.0で正解
onClipEvent (load) {
nSpd = 4;
nTempWidth = 1200;
trace(nTempWidth);
}
// 実行結果
// 1200
②AS1.0では間違い
onClipEvent (load) {
var nSpd:Number = 4;
var nTempWidth:Number = 1200;
trace(nTempWidth);
}
// 実行結果
// undefined
ActionScript書き出し設定1.0
Flash MX2004pro
WindowsXP sp2
記事修正:12:29 2008/02/08
ActionScript スコープ this. のfunction内における動作の検証
ムービークリップ_root.mcHogeにASを書き込む。他にムービークリップ_root.mcPiyoを作成しておく。
/*:mcHoge:*/
onClipEvent ( load ){
//
_parent.mcPiyo.onRelease = function () {
trace("_name = " + _name);
trace("this._name = " + this._name);
};
}
実行結果
_name = mcHoge
this._name = mcPiyo
う~ん、マンダム 謎は深まるばかり。
WindowXP sp2
Flash MX 2004 pro
Flash player 7