AS3 关于Depth的问题

As2里面里有关于深度的函数方法 SwapDepths,getNextHighestDepth.但AS3里没有这样的函数来处理.所以AS2 转AS3 关于深度很多朋友不适应.

AS3里的深度其实处理起来并不复杂,不过得弄清楚机制.

对于已经在舞台存在的对象,不管你文档原来有多少个层,AS3只会看对象的数量,每多一个对象,层的序数自动加1.
比 方说,你在Flash里面有3个层,第一层(最低的),有1个MC,叫AAAA,和一些用绘图工具画的东西,第二层,也有一个MC ,叫BBBB,同样也有一些绘图工具画的东西。第三层,有个MC叫CCCC .好了,那么不管你第一层 用绘图工具画了什么东西,有多少个组,组的层叠情况怎样,统统都只属于一个 Shape 对象,AAAA是一个MC对象,那么第一层就有2个对象了,他们分别获得0和1的序数顺序,第二层也是,无论用绘图工具画了什么也被视作一个Shape对 象,还有一个 BBBB的MC对象,他们获得,2和3序数,第三层CCCC获得 4。那么这个文件就一共有5个对象。 所谓深度自动分配,就是中间不会出现空的索引,都是连续的序数来的。不象AS2那样可以随便指定深度。 AS3要卸载任何显示对象,都可以用removeChild来从显示列表中删除。但removeChild不会把对象完全销毁。可以用AddChild来 重新加载他。

所以实际上AS3里已经把深度变成索引的概念. DisplayObject 对象也就是 MovieClip, Sprite 里提供一些函数了,改变或者获取这个索引.

例如:

getChildAt:DisplayObject
返回位于指定索引处的子显示对象实例。

getChildIndex:int
返回 DisplayObject 的 child 实例的索引位置。

setChildIndex:void
更改现有子项在显示对象容器中的位置。

swapChildren:void
交换两个指定子对象的 Z 轴顺序(从前到后顺序)。

swapChildrenAt:void
在子级列表中两个指定的索引位置,交换子对象的 Z 轴顺序(前后顺序)。

removeChildAt:DisplayObject
从 DisplayObjectContainer 的子列表中指定的 index 位置删除子 DisplayObject。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值