У меня есть дочерний объект, который остается на сцене при изменении рамки. Итак, я gotoAndStop (2); и объект все еще там. Однако, когда я возвращаюсь к кадру. Объект находится на нижнем уровне, несмотря на то, что я изначально добавил его с помощью addChildAt (character, 1); Я думаю, что это добавляет его в первый слой? Кто-нибудь знает, как я могу исправить эту проблему сохранения объекта movieclip на верхнем уровне, несмотря на изменение кадров? Благодарю.Смена слоя объекта при переходе между кадрами?
ответ
В 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.
Вы нашли решение? – BadFeelingAboutThis