AS3 setChildIndex 的用法

67 篇文章 1 订阅

 

setChildIndex 方法允许你向上或向下移动显示对象在显示列表内的位置。你可以把显示列表
考虑成一个数组,它的索引位置是从第 0 层开始的。如果你创建了 3 个显示对象,那么他们
的位置就是第 0,1,2 层。第二层的对象在外面,第 0 层的在最里面。
如果你想把某一个影片剪辑移动到所有显示对象的最里层,可以用
setChildIndex(myMovieClip,0)
执行这条语句之后,其余的对象将会自动往上提升一层,及他们的索引位置都加上了 1,原
来第 0 层的元素移到了第1 层,第1 层的元素移到了第 2 层……
如果想把某一显示对象移到所有对象的上面,这时就要用到 numChildren 属性,它的含义就
是该容器内显示对象的数目。比如现在某一容器内有三个显示对象,这个 numChildren 的值

就是 3,层次列表分别是第 0,1,2 层。那么,最外层的层深就是第 numChildren-1 层。
setChildrenIndex(myMovieClip,numChildren-1)

下例创建一个名为 container 的显示对象容器,然后向该容器添加三个稍微重叠的子显示对象。当用户单击这些对象中的任何一个对象时,clicked() 方法调用 setChildIndex() 方法,将单击的对象移动到 container 对象的子级列表中最上面的位置:

import flash.display.Sprite;
import flash.events.MouseEvent;

var container:Sprite = new Sprite();
addChild(container);

var circle1:Sprite = new Sprite();
circle1.graphics.beginFill(0xFF0000);
circle1.graphics.drawCircle(40, 40, 40);
circle1.addEventListener(MouseEvent.CLICK, clicked);
 
var circle2:Sprite = new Sprite();
circle2.graphics.beginFill(0x00FF00);
circle2.graphics.drawCircle(100, 40, 40);
circle2.addEventListener(MouseEvent.CLICK, clicked);
 
var circle3:Sprite = new Sprite();
circle3.graphics.beginFill(0x0000FF);
circle3.graphics.drawCircle(70, 80, 40);
circle3.addEventListener(MouseEvent.CLICK, clicked);
 
container.addChild(circle1);
container.addChild(circle2);
container.addChild(circle3);
addChild(container);
 
function clicked(event:MouseEvent):void {
    var circle:Sprite = Sprite(event.target);
    var topPosition:uint = container.numChildren - 1;
    container.setChildIndex(circle, topPosition);
}


 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值