简体   繁体   English

在dynamicjs中将形状数组添加到图层中

[英]Adding an array of shapes into a layer in kineticjs

I'm trying to attach an array of shapes to layer in kineticJS, so far this is what I've done: 我正在尝试将一系列形状附加到dynamicJS的图层上,到目前为止,这是我已经完成的工作:

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

when I try to add the array like this 当我尝试添加这样的数组时

linesLayer.add(elementContainer);

I get an exception with the following message: 我收到以下消息异常:

Uncaught TypeError: Object # has no method 'getType' kinetic.min.js:4 Kinetic.Util.addMethods._validateAdd kinetic.min.js:4 Kinetic.Util.addMethods.add kinetic.min.js:3 (anonymous function) (index):163 jQuery.event.dispatch jquery-2.1.0.js:4371 elemData.handle 未捕获到的TypeError:对象#没有方法'getType'dynamic.min.js:4 Kinetic.Util.addMethods._validateAdd dynamic.min.js:4 Kinetic.Util.addMethods.adddynamic.min.js:3(匿名函数) (索引):163 jQuery.event.dispatch jquery-2.1.0.js:4371 elemData.handle

this is the JSFiddle 这是JSFiddle

Add them separetly: 分别添加它们:

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

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

As lavrton said, each element must be added individually, but you may want to use a loop in case you ever need to change the number or names of elements in elementsContainer instead of hard coding them. 正如lavrton所说,每个元素必须单独添加,但是如果您需要更改elementsContainer中elementsContainer的数量或名称而不是对其进行硬编码,则可能需要使用循环。

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

http://jsfiddle.net/ze6nj/ http://jsfiddle.net/ze6nj/

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM