2010-03-24 28 views
1

后后,我改变一个影片剪辑的使用AS3:元素停留在舞台上操纵指数(深度)

oldIndex = getChildIndex(DisplayObject(e.target)); 
setChildIndex(DisplayObject(e.target), numChildren - 1); 

索引时我得到该目的的旧索引

setChildIndex(DisplayObject(e.target), oldIndex); 

,去电影的另一个框架,这个元素我改变了停留在新框架上的所有元素之上的索引。

我的问题是我做错了什么,如果不是,我该怎么做,以便这个元素只保留在它放置的框架?

+0

能否详细说明您的问题。框架与关卡无关。请记住,当您将显示对象添加到显示列表而不定义索引时,它将被添加到顶部(可用的最高索引),那么如果将其添加到特定索引中,它可能会重新排列其他显示对象索引。 – 2010-03-24 10:52:10

+0

最好的方法就是在无法避免的情况下使用框架(如转换动画)并尝试不混合框架和ActionScript。 – back2dos 2010-03-24 11:09:13

+0

我有舞台上的对象(它们不是用AS动态加载的),如果我尝试设置这个元素的索引,然后gotoAndStop放在另一个框架上 - 这个对象也出现在新框架上(它是一样的,不管是否我交换索引或只是设置新的索引)。也许问题是我有舞台上的对象,然后使用AS设置索引。我所做的修复它是检查新框架上是否存在元素并将其删除。 – o15a3d4l11s2 2010-03-24 11:47:06

回答

2

每次加载帧时,都会将元素重置为其在帧中的外观。要么你需要坚持基于帧的或者基于代码的动画,否则你需要创建一个包含对象顺序的数组或者类似的东西,然后每次你改变帧时,扫描这个数组并且把这些对象分配给相关指数。