【问题标题】:Animation with KineticJS in HTML5: Uncaught typeError: object is not a functionHTML5 中 KineticJS 的动画:未捕获的 typeError:对象不是函数
【发布时间】:2013-01-23 07:59:31
【问题描述】:

我正在编写 HTML5 游戏,我完全按照教程进行,但出现错误“Uncaught TypeError: Object is not a 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()

【问题讨论】:

  • func: 在函数之前是必须的吗?为什么我觉得这不正确?

标签: html kineticjs


【解决方案1】:

虽然在不了解您的设置参数的情况下我并不肯定,但我猜想可能与您的变量名有冲突。尝试将第三行更改为:

var anim = new Kinetic.Animation({

然后在fisherGroup mousedown 上,拨打anim.start();

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

【讨论】:

    【解决方案2】:

    这和教程不完全一样,改成:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-15
      • 2020-04-15
      • 1970-01-01
      • 1970-01-01
      • 2020-10-05
      • 2019-09-15
      相关资源
      最近更新 更多