kineticjs“无法调用方法'appendChild'未定义”

时间:2012-05-22 12:54:25

标签: javascript html5 kineticjs

我只是开始使用kineticJS但是我在跟随之后遇到了一些错误 This教程

我不明白为什么,但我从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>

3 个答案:

答案 0 :(得分:2)

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

而不是

  

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

我做了

  

var stage = new Kinetic.Stage({             容器:“容器”,             宽度:578,             身高:200           });

答案 1 :(得分:2)

自3月https://github.com/ericdrowell/KineticJS/commit/7ced50f6943af544dbdfc95883ec41728db1d3bd

以来,Kinetic.Stage构造函数发生了变化

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


应该提出向后兼容性的拉取请求。比如

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

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

答案 2 :(得分: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文档