CreateJS: MovieClip.children не обновляется после gotoAndStop()

CreateJS (2015.11.26) через Animate CC (16.0.0.112)

Структура :

root
 - myContainer
     - frame 0 -> btn_0
     - frame 1 -> btn_1

Первый кадр корня содержит следующий код:

var self = this;
createjs.Ticker.addEventListener("tick", initScreen);

function initScreen() {
    createjs.Ticker.removeEventListener("tick", initScreen);
    self.myContainer.gotoAndStop(1);
}

this.myContainer.addEventListener("click", function(e) {
    console.log("Button 0 : "+self.myContainer.btn_0);
    console.log("Button 1 : "+self.myContainer.btn_1);
});

Результат:

[Log] Button 0 : [MovieClip]
[Log] Button 1 : undefined

И при повторении self.myContainer.children существует только btn_0.

Таким образом, self.myContainer.children не обновляется при воспроизведении кадров.

Похоже на ошибку, так как я не могу найти никакой документации по этому поводу... но я удивлен, что не могу найти никого, у кого была бы эта проблема.

Любая помощь высоко ценится.

(Вопрос поднят здесь: https://github.com/CreateJS/EaselJS/issues/848)


person oshevans    schedule 02.03.2017    source источник


Ответы (1)


Я считаю, что это потому, что обе кнопки используют один и тот же символ. В AnimateCC выберите btn_1 и измените его «экземпляр», заменив дубликат на новый символ.

Это зарегистрировано для меня:

Button 0 : [MovieClip (name=null)]
Button 1 : [MovieClip (name=null)]
person Saariko    schedule 10.04.2017
comment
Спасибо, Саарико... должно быть, потребовалось некоторое время, чтобы найти обходной путь! К сожалению, у меня это не сработает блестяще, так как приведенный выше пример является выдержкой из проекта, в котором у меня много кнопок на множестве фреймов. Мое текущее решение состоит в том, чтобы использовать другой MC для просмотра вместо другого кадра для просмотра. - person oshevans; 13.04.2017