我有一个用EaselJS制作的精灵:
var Hero = new createjs.Sprite(spritesheet, 'run');
Hero.die = function() {
game.Ticker.removeAllEventListeners();
Hero.gotoAndPlay('death');
});
stage.addChild(Hero);
在我的股票代码中,我有类似的东西:
if(heroCollideBullet) Hero.die();
但我只看到第一帧,精灵没有得到更新。
有人可以解释为什么会发生这种情况吗?
答案 0 :(得分:1)
这是因为您正在调用Ticker.removeAllListeners()
,这会删除正在调用tick
的{{1}}的侦听器。 stage.update(evt)
调用既需要提升Sprite,也需要重新渲染阶段。
我通常会强烈反对使用stage.update(evt)
,因为它可能会产生意想不到的结果(如此),而是单独删除侦听器。