在ActionScript 3下检索/模拟Flash中的运行时“图层”功能

时间:2010-04-22 16:35:42

标签: flash actionscript-3 runtime design-time depth

是否有任何AS3类可帮助将对象排列到图层中,例如在设计器中,这样对象都具有相同的父对象?

显然,我可以使用容器剪辑来模拟图层,但我特别希望这种功能适用于具有相同父级的对象。

我的理解是,层的设计时概念在运行时不存在,对象只有深度索引。

我正在创建一个类来模拟单个父级的分层功能,但如果已存在,我想查看它。

旁注...设计时图层蒙版在运行时在AS3中如何表现?我想也许屏蔽层上的所有对象共享相同的蒙版对象,但是对于蒙版图层上的所有对象,“mask”属性似乎为null,即使它们与未屏蔽的对象共享相同的父时间轴(即未屏蔽的图层对象) parent == masked layer object parent;因此,似乎没有使用屏蔽的子容器。)

2 个答案:

答案 0 :(得分:0)

您可以根据“子索引”在运行时更改对象的图层顺序。基本上你使用container.setChildIndex(child, index)方法。具有较高索引的任何对象将显示在具有较低索引的任何子对象之上。还有两个便利函数swapChildren(child1,child2)和swapChildrenAt(index1,index2),用于在一次调用中交换两个子节点的索引,而不需要生成两个子节点。

答案 1 :(得分:0)

实现图层的一种方法是为每个图层创建一个空的Sprite,并将每个图层中所需的对象作为子图层添加到相关的Sprite中。然后可以按照与正常排序显示对象相同的方式对这些“图层”进行排序。