EaselJS动画内的自动收报机

时间:2015-11-04 14:59:41

标签: javascript createjs 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 个答案:

答案 0 :(得分:1)

这是因为您正在调用Ticker.removeAllListeners(),这会删除正在调用tick的{​​{1}}的侦听器。 stage.update(evt)调用既需要提升Sprite,也需要重新渲染阶段。

我通常会强烈反对使用stage.update(evt),因为它可能会产生意想不到的结果(如此),而是单独删除侦听器。