Cocos Creator 3.6.3 社区版公测

cocos的发展要从能用到好用最后到易用。目前3.6已经基本好用了。再发展也是锦上添花而不是雪中送碳了。应该发展到易用阶段了。

我们会参考你的意见,谢谢反馈

或者改成 callbackToBeOff

如果都改成
this.node.on(eventName, listener,target)
this.node.off(eventName, listener,target)
呢,还会有疑惑吗?

但是可以通过target去移除应该可以满足吧?因为一般同一个target监听某个eventName事件,通过target去移除这个监听不会影响其他的监听。比如我自己定义的Notification,将监听函数存入json列表{eventName:[{cb:cb, target:target}]},off的时候只需要传入eventName和target就行了,通过eventName找到eventName对应的数组,然后通过taget移除相应元素

这会改变语义,目前是允许同一个 target 有多个监听的。

我明白你的意思,也就是绑定的是target上面的一个函数listener,所以最好强制传入target然后用一个字符串来表示这个函数名也许会更好?我不大清楚你们最终的决定,但是如果改为listener也没有很好,总之,看你们怎么决定了,但是整体来讲,最好是可以从函数的参数名就可以知道我该传入什么,这样会更好一些,不过我还是觉得callback这个单词不大好,啊哈哈,可能是事件回调用多了,看到callback都会以为是取消事件后的回调函数,希望不要让新手们重蹈我的覆辙

这个我也是用到现在才知道一个target允许有多个监听,之前一直觉得target可传递可不传递,所以很经常不传递,但是很多时候我的callback函数并没有在当前文件,所以,曾经被造成很大的困扰,还调了很久没找到原因,也没法知道到底是什么问题导致监听不到或者说取消监听不执行取消后的回调函数,曾经一度很困扰我这个问题

是的。目前事件的监听接收的是 Function,它可能是某个类的成员函数,甚至是个普通函数,所以没法通过 target 取消监听。

同一个target有多个监听,但是同一个target同一个eventName监听多次就没必要了吧

要不就在一个文档里面强调一下?因为当初我就是看文档的,确实不是我看的不够仔细,不过还是希望再off里面去除callback的命名,可以改为其他命名。确实也没有一个很好的解决方案

目前确实是允许同一个事件名来调用同一个target上面的不同函数,如果没点经验,真的不知道有这么一回事,所以这也是我想提出来的地方,功能很强大,但是越强大可能意味着需要注意的地方越多

嗯嗯,我们也再看看是否有更好的名字。关于文档,我们再补充一下。

1赞

从目前是用来看,我没有遇见过同一个事件名来调用同一个target上面的不同函数,所以我的意思是这个功能没啥作用,如果有需要这种功能的场景也完全可以在同一个callback里通过传参做相应处理,所以这点我是不理解的

(帖子被作者删除,如无标记将在 24 小时后自动删除)

1赞

我也是3.5.2过来后出现这个问题,我是因为用了一个扩展叫ccc-devtools
会导致报错Error: UI element #error .error-stack doesn’t exist.
所以这个扩展不能继续使用了,卸载后正常了

Function 需要配合 target 才知道是要取消哪个 target 的 Function。当然了,如果没有 target,那就是普通的函数了。

(帖子被作者删除,如无标记将在 24 小时后自动删除)

Laya里管这个东西有个类叫handle

这个解决了吗 :cold_sweat: