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;

}



原文地址:https://www.cnblogs.com/jiahuafu/p/1450549.html