1

我试图为我的角色重新加载动画更改值。每次动画循环时,我希望 player.shots 增加 1。但是,它运行一次,动画继续这是我的代码。

    gun.setAnimation('reload');
gun.afterFrame(6,function(){
        console.log('reload');
        player.shots++;
        if(player.shots > 5){
          gun.setAnimation('idle');
        }
    }

有趣的是,如果函数中发生错误,它会像预期的那样工作。

    gun.setAnimation('reload');
gun.afterFrame(6,function(){
        console.log('reload');
        player.shots++;
        if(player.shots > 5){
          gun.setAnimation('idle');
        }
        throw "reloading"
    }

这使我相信 afterFrame 确定它是否应该在下一次迭代中运行或不基于返回值。

是否有任何好的解决方法或我需要添加的参数,或者我应该故意导致错误以获得所需的行为?

4

1 回答 1

1

目前没有办法做到这一点,但我已经在 github 上提交了一个拉取请求,这将使返回 true 使其循环。

编辑:新方法

sprite.on('indexChange', function(evt) {

});
于 2013-10-30T00:36:41.077 回答