交换显示层次

在AS中交换显示层次无外乎使用以下几个方法:

1. swapChildren(child1:DisplayObject, child2:DisplayObject);

2. swapChildrenAt(index1:int, index2:int);

3. setChildIndex(child:DisplayObject, index:int);

4. addChild(child:DisplayObject); //将显示对象添加到最高层

5. addChildAt(child:DisplayObject, index:int);


关于如何使用这些方法,没有什么说的了,大家都很熟悉。现在说说他们的区别:

addChild及addChildAt是以增量添加的形式将一个显示对象添加到容器的显示列表中。如果显示对象已经在显示列表中存在,则会首先将它们从列表中移除,然后再重新添加到相应位置,这两个操作可能引发两个事件:addToStage(一定引发)和removeFromStage(当显示对象原先已经存在于显示列表中时引发)。而swapChildren、swapChildrenAt、setChildIndex则是直接修改显示层次后触发FlashPlayer重绘,他们不会刷新显示列表,不引发addToStage和removeFromStage事件,效率要比addChild和addChildAt高许多。对于引发addToStage和removeFromStage事件的addChild和addChildAt我们要注意:有很多用心于资源释放的朋友喜欢在窗口的removeFromStage事件中去释放窗口资源,这是非常好的习惯,但如果在removeFromStage里释放资源的同时,我们的窗口管理类使用addChildAt来更改窗口层次,则容易造成窗口内容无显示或空对象操作错误(在removeFromStage里释放了资源,但没有在addToStage里重新配置资源内容)。因此,强烈建议窗口管理类不要用addChild和addChildAt来重置窗口层次

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值