cc.Node.off (关闭监听)无效 v2.4.2

const { ccclass, property } = cc._decorator;

@ccclass
export default class ClickComponent extends cc.Component {
@property(cc.Node)
btn_click: cc.Node = null;

protected onEnable(): void {
    this.btn_click.on(cc.Node.EventType.TOUCH_END, this.onBtnClick.bind(this), this);
    // this.btn_click.on(cc.Node.EventType.TOUCH_END, this.onBtnClick.bind(this), this.btn_click);
}
protected onDisable(): void {
    // this.btn_click.off(cc.Node.EventType.TOUCH_END,  this.onBtnClick.bind(this) ,this)
}

closeClick() {
    this.btn_click.off(cc.Node.EventType.TOUCH_END, this.onBtnClick.bind(this), this);
    // this.btn_click.off(cc.Node.EventType.TOUCH_END, this.onBtnClick.bind(this), this.btn_click);
}

/***点击*/
onBtnClick() {
    console.error("点击了.................. = ");
    this.closeClick();
}

}

on off 第二个参数不一致

绑定是同一个onBtnClick,这个不是一致的么

bind返回新的了

on/off两次bind产生的是不同的对象。

是的,用箭头函数吧,类里面定义值 值等于一个箭头函数