在帧之间移动时对象更改层?
Posted
技术标签:
【中文标题】在帧之间移动时对象更改层?【英文标题】:Object changing layer when going between frames? 【发布时间】:2015-02-18 23:57:24 【问题描述】:当框架改变时,我有一个对象的子对象留在场景中。所以我 gotoAndStop(2);并且对象仍然存在。但是,当我回到第一帧时。该对象位于最低层,尽管我最初使用 addChildAt(character, 1); 添加它。我认为这会将其添加到第一层?任何人都知道如何解决这个问题,即尽管改变帧,但仍将影片剪辑对象保留在顶层?谢谢。
【问题讨论】:
您找到解决方案了吗? 【参考方案1】:在 AS3/Flash 中,最底层是0
。因此,addChildAt(character, 1)
将使您的角色成为最底层的第二个角色。 addChildAt(character, 0)
将使它成为最底层/后层。
如果您想让它成为最顶层,您可以执行以下任一操作:
addChild(character); //this is the shortest amount of code
addChildAt(character, numChildren-1); //the is exactly the same as above
setChildIndex(character, numChildren-1); //this is also the same but requires the character already be present on the display list
如果您的角色源自时间轴(例如,不是通过代码创建的),则后者 (setChildIndex
) 可能是首选。原因是,如果您通过代码更改在时间轴上创建的某些内容的父级,那么当不再出现在时间轴上时,它不会消失。
如果您想要一种方法来强制某些内容始终位于顶部,您可以按照以下方式进行操作:
this.addEventListener(Event.ADDED, bringToTop);
function bringToTop(e:Event):void
setChildIndex(character, numChildren-1);
这样做,当任何其他对象被添加为this
的子对象时,它会将字符设置为最顶层/z-index。
【讨论】:
以上是关于在帧之间移动时对象更改层?的主要内容,如果未能解决你的问题,请参考以下文章