egret-docs-master/Engine2D/displayObject/resetDepth/README.md

38 lines
1.2 KiB
Markdown
Raw Permalink Normal View History

2024-06-19 13:32:32 +08:00
重设子对象深度有2种方法:[使用 setChildIndex ](../depthManagement/README.md#4重设子对象深度)和使用 zIndex.
从 Egret 5.2.24 版本开始,`DisplayObject` 中新增加了一个 `zIndex` 属性,可以设置对象的 Z 轴顺序。该值越大,越靠近顶部。
在 PC 的 Chrome 浏览器和安卓系统中,`zIndex` 的效率比 `setChildIndex` 高很多。极限测试时可以达到10倍以上。
在 iOS 系统中,两种方式的效率基本一致,没有很大区别,这跟系统浏览器的内核有关。
**注意,要给一个对象使用 zIndex包含此显示对象的 DisplayObjectContainer 对象一定要设置 sortableChildren = true开启排序功能否则设置 zIndex 是无效的**
```javascript
let container = new egret.Sprite();
container.sortableChildren = true;//注意一定要设置为true
this.addChild(container);
let texture: egret.Texture = RES.getRes('bird_png');
let b1 = new egret.Bitmap();
b1.texture = texture;
b1.x = 100;
this.addChild(b1)
let b2 = new egret.Bitmap();
b2.texture = texture;
b2.x = 270;
this.addChild(b2)
let b3 = new egret.Bitmap();
b3.texture = texture;
b3.x = 440;
this.addChild(b3)
b2.zIndex = 3;//将第二个图片设置到顶部
```
![](./p1.png)