在kineticjs中将一组形状添加到图层中

时间:2014-03-21 20:52:39

标签: javascript arrays kineticjs

我正在尝试将一组形状附加到kineticJS中的图层,到目前为止,这就是我所做的:

elementContainer = {
    start: buildCircle(75, 75),
    activity: buildActivity(150, 50),
    end: buildCircle(250+25, 50+25)
 };

当我尝试像这样添加数组时

linesLayer.add(elementContainer);

我收到以下消息的异常:

  

未捕获TypeError:对象#没有方法'getType'   kinetic.min.js:4 Kinetic.Util.addMethods._validateAdd kinetic.min.js:4   Kinetic.Util.addMethods.add kinetic.min.js:3(匿名函数)   (index):163 jQuery.event.dispatch jquery-2.1.0.js:4371 elemData.handle

this is the JSFiddle

2 个答案:

答案 0 :(得分:0)

添加它们separetly:

layer.add(elementContainer.start).add(elementContainer.activity).add(elementContainer.end);

http://jsfiddle.net/5WpP5/2/

答案 1 :(得分:0)

正如lavrton所说,每个元素必须单独添加,但如果您需要更改elementsContainer中元素的数量或名称而不是硬编码,您可能需要使用循环。

for (var key in elementContainer) {
    layer.add(elementContainer[key]);
}

http://jsfiddle.net/ze6nj/