自动收报机内的 EaselJS 动画
EaselJS animation inside the ticker
我有一个用 EaselJS 制作的精灵:
var Hero = new createjs.Sprite(spritesheet, 'run');
Hero.die = function() {
game.Ticker.removeAllEventListeners();
Hero.gotoAndPlay('death');
});
stage.addChild(Hero);
在我的自动收报机里我有这样的东西:
if(heroCollideBullet) Hero.die();
但我只看到第一帧,精灵未更新。
有人可以解释为什么会这样吗?
这是因为您正在调用 Ticker.removeAllListeners()
,这会删除正在调用 stage.update(evt)
的 tick
的侦听器。需要 stage.update(evt)
调用来推进 Sprite 和重新渲染舞台。
我通常会强烈警告不要使用 removeAllListeners()
,因为它可能会产生意想不到的结果(像这样),而是单独删除侦听器。
我有一个用 EaselJS 制作的精灵:
var Hero = new createjs.Sprite(spritesheet, 'run');
Hero.die = function() {
game.Ticker.removeAllEventListeners();
Hero.gotoAndPlay('death');
});
stage.addChild(Hero);
在我的自动收报机里我有这样的东西:
if(heroCollideBullet) Hero.die();
但我只看到第一帧,精灵未更新。
有人可以解释为什么会这样吗?
这是因为您正在调用 Ticker.removeAllListeners()
,这会删除正在调用 stage.update(evt)
的 tick
的侦听器。需要 stage.update(evt)
调用来推进 Sprite 和重新渲染舞台。
我通常会强烈警告不要使用 removeAllListeners()
,因为它可能会产生意想不到的结果(像这样),而是单独删除侦听器。