首页 > 未分类 > addChild()和addChildAt(,index)的区别
2019
12-06

addChild()和addChildAt(,index)的区别

新的子显示对象通过addChild()加入到显示列表中,绘制时,视觉上会位于在容器内所有的其它子显示对象之上,因为addChild()会把该子对象加入到子元件的列表前端,使其拥有下一个最高位置的索引值,如果你要新增子对象,同时指定它的层叠次序,可以使用 addChildAt();方法。

addChildAt()方法有两个参数:要新增的对象,以及这个对象要在层叠次序中使用什么位置,如果先前有元件在指定位置上,那么原该位置处的对象和以上的所有对象都会向上移动一个单位。指定无效位置时,会抛出一个错误。

下面的示例建立三个不同颜色的圆,红圆和蓝圆是以addChild()方法加入的,使得蓝圆出现在上面,因为是在红圆之后加入的。然后,绿圆会以addChildAt()方法安插到这两个圆之间(指定索引1后,原位于1的红圆会移动到2)

//新建三个不同颜色的圆圈,然后改变其座标,使其错开,不再都位于(0,0);

var red:Shape=createCircle(0xFF0000,100,100,200);

var green:Shape= createCircle(0x00FF00,100,150,200);

var blue:Shape= createCircle(0x0000FF,100,200,200);

addChild(red);

addChild(blue);

addChildAt(green,1);

function createCircle(co:uint,r:Number,rx:Number,ry:Number):Shape{

var shape:Shape=new Shape();

shape.graphics.beginFill(co);

shape.graphics.drawCircle(0,0,r)

shape.graphics.endFill();

shape.x=rx;

shape.y=ry;

return shape;

}

最后编辑:
作者:搬运工