Egret 2D(4) 深度管理

深度管理

每一个显示对象在其父级的容器中都拥有一个属于自己的深度值,而且这个值相对于同级显示对象是唯一的。深度值实际上就是一个显示对象的叠放次序。也可称为 z-次序”,类似于css的"z-index";

容器的子对象数量

容器.numChildren

深度顺序

Egret中容器的深度都是从0开始的,当第一个显示对象被添加到容器中时,它的深度值为0。这个显示对象处于容器的最底层。当添加第二个显示对象的时候,它的深度值为1,并且在第一个显示对象上方。如果两个显示对象发生了相交,那么可以从视觉上看到,第二个显示对象遮挡住第一个显示对象。

也就是说谁添加到容器中,谁的层次就比较低。

添加/删除指定深度的对象

添加指定深度的对象(相当于插入):

默认按照当前子对象深度进行排序,从0开始,每次深度加1,以此类推。

容器.addChildAt( 显示对象, 深度值 )

删除指定深度的对象:

容器.removeChildAt( 深度值 )

删除容器内的所有子对象

容器.removeChildren();

交换不同深度对象

根据显示对象交换深度:

容器.swapChildren( 显示对象, 显示对象 )

根据深度交换显示对象:

容器.swapChildrenAt( 深度值, 深度值 )

重设子对象深度

容器.setChildIndex( 显示对象, 新的深度值 )

访问容器子对象

根据深度值访问(效率快):

容器.getChildAt( 深度值 );

根据显示对象的name访问:

//前提设置name。显示对象.name="name";
容器.getChildByName( 显示对象的name );//参数是String

猜你喜欢

转载自my.oschina.net/u/3112095/blog/1785484