码迷,mamicode.com
首页 > 其他好文 > 详细

egret之移除带参数的监听事件

时间:2018-11-22 12:24:41      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:vat   style   函数   lis   class   event   col   事件   添加   

   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之移除带参数的监听事件

标签:vat   style   函数   lis   class   event   col   事件   添加   

原文地址:https://www.cnblogs.com/shirln/p/10000256.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!