コールバック関数内でクラスのメソッドを呼び出すと、this
オブジェクトを使用できません。
メソッドを呼び出すには、that
という変数を宣言し、this
をthat
に割り当て、コールバック内でthat
を使用してthis
というメソッドを呼び出します。
actionscriptでは、javascriptと同じようにする必要がありますか?
次のコードは、that
を使用してコールバック内のメソッドを呼び出す例です。
actionscriptの方が簡単ですか?
actionscriptのコールバック関数内でクラスのメソッドを使う方法は?
class C {
private var that:C;
function C() {
that = this
}
public function f1():void {
var sp:Sprite = new Sprite;
sp.addEventListener(MouseEvent.CLICK, function():void {
this.f2(); // this doesn't work
that.f2(); // that works
});
}
public function f2():void {
trace('hello');
}
}
「this」を除外してみませんか? – OXMO456
@ OXMO456ありがとうございます。 'this'を省略するとうまくいった。それは非常に簡単な解決法です。 –