当帧发生变化时,我有一个物体的孩子留在场景中。所以我gotoAndStop(2);而物体仍在那里。但是,当我回到第一帧时。该对象位于最低层,尽管我最初使用addChildAt(character,1)添加它;我认为这会将它添加到第一层?任何人都知道如何解决这个问题,即尽管改变帧,仍然将影片剪辑对象保留在顶层?谢谢。
答案 0 :(得分:0)
在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。