在HTML5中使用KineticJS进行动画:未捕获的类型错误:对象不是函数

时间:2012-11-09 18:37:05

标签: html5 kineticjs

我编写了一个HTML5游戏,我完全按照教程进行操作,但我收到错误“Uncaught TypeError:Object is not function”。有人可以帮帮我吗?

  var amplitude = 150;
  var period = 2000;
  animation = new Kinetic.Animation({
       // ERROR APPEARS HERE
      func: function (frame)
      {
      hook.setY(amplitude * Math.sin(frame.time * 2 * Math.PI / period));
      hook.setX(fisherGroup.getX());
      },
      node: shapesLayer
    });
  fisherGroup.on("mousedown", function(){
    animation.start();
  });

我在此段落上方创建了hook = new Kinetic.Image()fisherGroup = new Kinetic.Group()

2 个答案:

答案 0 :(得分:0)

虽然如果我不了解更多有关您的设置参数的信息,我会不肯定,但我猜您的变量名称可能存在冲突。尝试将第三行更改为:

var anim = new Kinetic.Animation({

然后在fisherGroup mousedown上,请致电anim.start();

如果您使用的是扩展原型并使用动画的框架,则可能会导致问题。此外,如果您将动画设置为全局(未使用var声明),那么这也可能是一个问题。

答案 1 :(得分:0)

这与教程完全不同,将其更改为:

 var animation = new Kinetic.Animation({function (frame) {
       hook.setY(amplitude * Math.sin(frame.time * 2 * Math.PI / period));
       hook.setX(fisherGroup.getX());
    },
    shapesLayer
});