[bug 反馈]:SIBLING_ORDER_CHANGED 事件居然是父节点触发

版本:3.6.3 - 3.7.2

image

image

image

image

1 和 3 均挂载了组件

从语意讲,确实是应该在子节点本身发。现在的问题是,如果改成从子节点发的话,那么对已有的项目算是破坏兼容性了。我们考虑一下怎么改。

我不知道有没有人用这个接口,但是用这个接口的人应该都是想监听 this.node 的 siblingIndex 吧,因为如果是监听子节点,那么怎么知道是哪个子节点的顺序变了?所以我觉得应该抛弃这个事件对之前版本的兼容性,或者新增一个子节点顺序改变的事件

是的,我建 issue 跟进了:https://github.com/cocos/cocos-engine/issues/15479

我觉得还是赶紧弄个z-Index的代替品吧,用不用,让用户自己选就好了。没这个z-Index,现在遇到有个按钮是在某个子对象里,但显示必须置顶显示的头疼问题 :joy:

你说的这个 z-index 是所有的节点之间的排序吗?

好像cocos里是叫z-Order,记混了 :joy:

没关系,我只想了解它的用途。你指的是类似 cocos2d-x 的 globalZOrder?

就是2.x版本里的z-Order,3.x里没了,变成了setSibling,无法将某个节点永久置于顶层了

这个需要在绘制前排序,会影响性能哦,尤其是在 js 里。