Почему this.stop() изменяет z-индекс, который я установил с помощью setChildIndex() в Adobe Animate?

У меня возникли трудности с получением ожидаемых результатов с помощью setChildIndex().

В этом примере у меня есть 2 экземпляра MovieClip с именами redDot и yellowDot, а также форма черного квадрата. Я бы ожидал, что он поместит желтую точку внизу, затем квадратную, а затем красную точку.

//make black rectangle shape
var square = new createjs.Shape(new createjs.Graphics().f("#000000").dr(100,100,100,100));
this.addChild(square);

this.setChildIndex(this.yellowDot, 0); //set z-index towards background 
this.setChildIndex(square,1);
this.setChildIndex(this.redDot, 2);//towards foreground

Вместо этого я получаю красную точку, желтую точку и квадрат. Добавление this.stop() в конец, похоже, возвращает его к ожидаемому порядку. Мне не ясно, чем вызвано это несоответствие. Зацикливание отключено в настройках публикации. Я неправильно понимаю, как работает эта функция и временная шкала Animate?


person JimmyTheHack    schedule 01.07.2020    source источник


Ответы (2)


Интересно, стадия не обновляется? Что произойдет, если вы используете stage.update() в конце вашего кода. (или, тем не менее, вы обновляете сцену в анимированном сценарии).

person Dan Zen    schedule 14.08.2020

Я полагаю, что вызов this.stop() является повторным рендерингом начального состояния клипа, в котором используется исходное определение z-index. Вероятно, имеет смысл вызвать его перед программным изменением содержимого.

person Lanny    schedule 14.08.2020