我在一个test节点添加了N个节点,其中有一个节点,叫他A,不管任何时候插入,都显示在最上面
比如
我添加了
1,2,3,4,5节点
然后添加A,A 在最上
这个时候又添加了6,7,8,9
这个时候,A还是要在最上面
在2dx里面,可以设置A的层级为最高,这样就算是后面添加的节点,也不会挡住A
但是在creator里要怎么做呢?
2.4版本有zIndex可以使用,3.8没有zIndex。
在3.8中,一般情况下可以使用 node.setSiblingIndex(9999999) 将节点的层级设置最高。
但是很多时候不方便每次都为当独节点设置层级。
可以试试这个方法:
为该节点设定一个自定义属性,例如:zi,设置node.zi=99999。
然后监听父节点的CHILD_ADDED和CHILD_REMOVED事件,每次触发事件就根据zi对子节点进行排序。
这样就能实现你说的效果了。
1赞
其实这个方法适用于设定任意层级,不仅限于最高层级。
在排序的时候对层级进行适当的管理就行了。
1.像上面说的,可以给父节点在添加子节点的事件里用setSiblingIndex改层级
2.手动实现一个zIndex
3.用3.8.7的Sorting2D
我想到一个简单的emmm 添加所有节点后更换A的父节点 再把A放回去 能行的通吗
每次插入的时候,调用setSiblingIndex,改插入的元素下标为倒数第二,那倒数第一不就是固定了么
或者直接使用 insertChild,就可以指定 siblingIndex 了
如果它已知都是最高,为什么还要放在同一个父节点下面
1赞