如何改变精灵帧率

kinecticjs - how to change Sprite frameRate

本文关键字:精灵 帧率 改变 何改变      更新时间:2023-09-26

我有一个动能。雪碧obj:

//create troll obj:
var trollImageObj = new Image();
trollImageObj.onload = function () {
    var troll = new Kinetic.Sprite({
        x: 250,
        y: 40,
        image: trollImageObj,
        animation: 'solid_down',
        animations: animations,
        frameRate: 2
    });
.
.
.

每次箭头键按下我都使用troll.setAnimation(newAnimation);改变troll动画(每次箭头键按下不同的动画)。

我也想改变frameRate,但我找不到一种方法来做吗?(没有setFrameRate)有什么办法吗?

确实有一种叫做setFrameRate的方法(见这里http://kineticjs.com/docs/Kinetic.Sprite.html)。

诀窍在于停止精灵,设置新的帧率和动画,然后再次启动精灵。使用您提供的代码,必须添加以下内容:

   troll.stop();
   troll.setAnimation('newAnimation');
   troll.setFrameRate(10); // 10 as an example
   troll.start();

此代码必须添加到onload回调中。

那么,您可以尝试直接访问{config}属性:

  trollImageObj.attrs.frameRate = some number;

但我不认为这将工作;我认为对象动画在创建之后是不可修改的。

要做的事情要么是为不同的动画创建单独的精灵,要么是在动画中添加/删除动画帧。