2015-11-04 1 views
0

Я спрайт, сделанный в EaselJS:EaselJS анимация внутри тикера

var Hero = new createjs.Sprite(spritesheet, 'run'); 
Hero.die = function() { 
     game.Ticker.removeAllEventListeners(); 
     Hero.gotoAndPlay('death'); 
}); 
stage.addChild(Hero); 

Внутри мой тикер У меня есть что-то вроде:

if(heroCollideBullet) Hero.die(); 

Но я только видел первый кадр, спрайт он не обновляется.

Может кто-нибудь объяснить, почему это происходит?

ответ

1

Это потому, что вы звоните Ticker.removeAllListeners(), который удаляет ваш слушатель для tick, который вызывает stage.update(evt). Звонок stage.update(evt) требуется как для продвижения Sprite, так и для повторной визуализации сцены.

Я обычно предостерегал от использования removeAllListeners(), так как он может иметь непреднамеренные результаты (например, это) и вместо этого удалять слушателей отдельно.

+0

Если я не удаляю слушателя, моя анимация застревает в кадре 0, поэтому никаких результатов – Hiero

+0

Я нашел решение, чтобы удалить прослушиватель тика из галочки() fn и добавить его на сцену, это хорошая практика? game.Ticker.addEventListener ('tick', CANVAS); – Hiero

 Смежные вопросы

  • Нет связанных вопросов^_^