egret之移除带参数的监听事件
Posted shirln
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了egret之移除带参数的监听事件相关的知识,希望对你有一定的参考价值。
this.selectBtn.addEventListener(egret.TouchEvent.TOUCH_TAP, this.onClickNewIndo.bind(this,this.data), this);//添加监听事件 public onClickNewIndo(data,evt:egret.TouchEvent) { this.selectBtn.removeEventListener(egret.TouchEvent.TOUCH_TAP, this.onClickNewIndo.bind(this,this.data), this);//移除监听事件 }
在egret中,我们添加带参数的监听事件,首先想到的是用bind绑定,但是bind会返回一个新函数(匿名的),这样会造成移除监听事件的时候不能移除。
现在的办法是,我们可以用一个参数来保存这个匿名函数,在需要的移除的地方移除这个参数就可以了。实际做法如下:
private fun:any;//声明一个参数 this.fun=this.onClickNewIndo.bind(this,1);//将监听事件函数保存 this.selectBtn.addEventListener(egret.TouchEvent.TOUCH_TAP, this.fun, this);//添加监听方法 public onClickNewIndo(data,evt:egret.TouchEvent) { this.selectBtn.removeEventListener(egret.TouchEvent.TOUCH_TAP, this.fun, this);//移除监听事件 }
这样,你就能顺利移除带参数的监听事件了。
以上是关于egret之移除带参数的监听事件的主要内容,如果未能解决你的问题,请参考以下文章