动画取消注册为什么还要传入之前的函数,设计不合理

看官方动画的文档:
var animation = this.node.getComponent(cc.Animation);

// 注册
animation.on(‘finished’, this.onFinished, this);
// 取消注册
animation.off(‘finished’, this.onFinished, this);

注册和取消注册不在一个文件里面写,我这里就单纯的取消完成事件的绑定,为啥还要我把之前的函数再次传入???

希望这样:
animation.off(‘finished’);

因为同一个事件可以注册多个监听,得指定是取消哪一个监听。
想取消全部事件监听,可以用:
http://cocos.com/docs/creator/api/classes/Animation.html#method_targetOff

1赞

其实应该设计成 off(‘finished’),不传入 callback 时就移除所有回调, @panda 你觉得捏?

3赞

我认为至少要支持这个功能

我觉得应该支持,不然我还得时刻保存绑定的函数和指针

知道事件名,应该就可以注销事件,传入回调感觉不太合理

嗯,我们试试

已经提交了

https://github.com/cocos-creator/engine/pull/1796

1.6 会有这个新功能

4赞