for(let i:number =0;i<this.itemList.length;i++){
this.itemList[i].on(SysEventType.CLICK,this.onClickDraw.bind(this,i),this);
}
private onClickDraw(index:number,evet:cc.Event):void{
}
如上 bind后相当于把onClickDraw复制的一份 无法正常off 掉 新手 求执教
for(let i:number =0;i<this.itemList.length;i++){
this.itemList[i].on(SysEventType.CLICK,this.onClickDraw.bind(this,i),this);
}
private onClickDraw(index:number,evet:cc.Event):void{
}
如上 bind后相当于把onClickDraw复制的一份 无法正常off 掉 新手 求执教
最后面那个this有了,就不需要bind(this)了。
我主要是想在on回调里拿到传进去的i 可是这种方式没法成功off掉
bind导致返回了一个新的函数对象, 使用off时传入的函数与之前的bind函数不相等,因此无法把事件移除掉,有两方法供你参考:
this.itemList[i].index = i;