有没有办法干掉node监听的所有事件

因为我用nodepool,发现put到pool中,那些监听的事件还在,所以我put前需要off掉所有这个node下的事件,但是OFF又要传入之前的函数,有些是匿名函数,有些在pool层面根本调用不到的函数

http://www.cocos.com/docs/creator/api/classes/Node.html

可以看看 Node 的 API

不是吧target不是指的是node.on("",f,target),这个参数吗,这个target不一定是自己啊

target 你试一下传入自己看看

不是吧target不是指的是node.on("",f,target),这个参数吗,这个target不一定是自己啊

那你这不都知道 target 是什么了吗?你只要 node.targetOff 传入你 on 的 target 就行了

1赞

不知道很正常吧
比如我有个通用的模块
MyPool:
createNode(prefab){
if(size > 0) return pool.get();
return cc.instantiate(prefab);
}
然后使用的地方
World:
createMonster(){
var m = POOL.createNode(this.MonsterPrefab)
m.on(touch_end, this.onClick, this)
m.on(touch_move, function(){ xxxx }, m)
}
如果有removeAllEvent的函数,我就只用在createNode里面加一句node.removeAllEvent; return node
不然的话我要createMonster单独做处理:
m.targetOff(this)
m.targetoff(m)
createPlayer又要处理,每个地方都要单独处理。我现在pool很多地方在用,因为cc.instantiate真的好慢,电脑上还好,放到手机上,很慢很慢。
能不能和我说下调用node.on后,那些数据都记录到哪个变量里面去了。我代码跟踪了一下,没看懂,那3个变量都记录到哪里去了,我能取回这个3个变量,就遍历一边,处理下

你可以看看源码中的 this._capturingListeners 和 this._bubblingListeners,事件都会存在这里,你可以看看 CCNode 的 off 是如何移除事件的

但是最好还是回收的时候 off 掉指定函数的事件,不要用匿名函数

好的,3q

哈哈,得加强理解能力哦~官方GG给你指名了一个方向了,可你总纠结他只是个参数上面,半天都跳不出来。
我都看着心急了,所以就吐槽下吧~~哈哈。。

1赞