egret addEventListener処理関数追加パラメータ

1310 ワード

egretではaddEventListenerを使用します.パラメータを追加してbindを使用します.
private mainFunction(){
    let param1 = '  1';
    let param2 = '  2';
    let param3 = '  3';
    Btn.addEventListener(egret.TouchEvent.TOUCH_TAP, this.clickFunction.bind(this, param1, param2, param3 ,false), this);
}

private clickFunction(param1, param2, param3){
    console.log(param1);
    console.log(param2);
    console.log(param3);
}
*bind(this,params,false)のthisは、パラメータを受け取る関数オブジェクトを指しますので、異なるクラス間で呼び出す場合は書き込みに注意してください. クラス名.get Instance()またはクラス名.uガメSchene(getInstance()とガメScheneは自分で定義した現在のオブジェクトのthisです.)
 
addEventListener()で使用しているbind()はremoveveveventListener()が無効になる問題がありますので、一回クリックするだけであればOce()を使ってaddEventListener()の代わりにします.
ワンス()の使い方はaddEventListener()と同じで、違っています.ワンス()は一回だけ傍受して、一回で失効します.removevevevevent Listener()は必要ありません.
private mainFunction(){
    let param1 = '  1';
    let param2 = '  2';
    let param3 = '  3';
    Btn.once(egret.TouchEvent.TOUCH_TAP, this.clickFunction.bind(this, param1, param2, param3 ,false), this);
}

private clickFunction(param1, param2, param3){
    //         ,            this.mainFunction();
    //this.mainFunction();
    console.log(param1);
    console.log(param2);
    console.log(param3);
}