いまさらながら、イベントハンドラメソッド定義でのターゲット指定を全然理解していなかった。
イベントハンドラメソッド内は、そこはもう別の世界なんだと理解。
3つのボタンがあり、それぞれロールオーバーしたときに、それぞれの中でgotoAndPlayする、というものを作るばあい、
間違った例 : tgtMC.gotoAndStop("over")
for (var i = 0; i<3; i++) { var tgtMC = this["menu"+i]; tgtMC.onRollOver = function() { initButtons(); tgtMC.gotoAndStop("over"); }; }
正しい例 : this.gotoAndStop("over")
for (var i = 0; i<3; i++) {
var tgtMC = this["menu"+i];
tgtMC.onRollOver = function() {
initButtons();
this.gotoAndStop("over");
};
}
ここを読んでみて、わかったようなわからないような。というかthisが本当にわけわからない。
逆に、これを記述したフレームのメソッド(initButtons())を、イベントハンドラメソッド内から使う場合、あたりまえにthisから始めると認識されない。