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);//移除監聽事件
    }

這樣,你就能順利移除帶參數的監聽事件了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM