2

我才开始使用 kineticJS,但在遵循 教程后出现了一些错误

我不明白为什么,但我从 KineticJS 文件中得到一个异常:

"Uncaught TypeError: cannot call method 'appendChild' of undefined".

当我一步一步做时alert(),我看到它在

var stage = new Kinetic.Stage("rightSide", 578, 200);

但我最确定的是:

<canvas id="rightSide">
</canvas>

我也试过:

<div id="rightSide">
</div>

我得到了同样的错误。

谢谢。

编辑:针对下面的评论,这是教程中的复制粘贴:

</head>
<body>
<div id="container">
</div>
</body>
4

3 回答 3

2

问题在于舞台的实际创建。

代替

var stage = new Kinetic.Stage("container", 578, 200);

我做了

var stage = new Kinetic.Stage({ container: "container", width: 578, height: 200 });

于 2012-05-22T13:31:36.813 回答
2

自 3 月以来 Kinetic.Stage 构造函数发生了变化 https://github.com/ericdrowell/KineticJS/commit/7ced50f6943af544dbdfc95883ec41728db1d3bd

因此,@Gleeb 自己的答案反映了 KineticJS v4.0.x 中的当前实践,而不是早期 v3 时代制作的那些文档/教程。


应该为向后兼容性提出拉取请求..类似

if(arguments.length>1){
 config.container =  arguments[0];
 config.width = arguments[1];
 config.height = arguments[2];
}

...在舞台构造函数中。

于 2012-08-27T06:46:42.667 回答
1

尝试在window.onload事件中运行您的脚本(如示例中所示)并用于console.log()调试您的变量/对象。

window.onload = function() {
  var stage = new Kinetic.Stage("rightSide", 578, 200);
  console.log('stage =', stage); // DEBUG
};

...并使用div而不是canvas.

<div id="rightSide"></div>

您可以在http://www.kineticjs.com/docs/symbols/Kinetic.Stage.php找到更多教程和官方 API 文档

于 2012-05-22T13:29:03.207 回答