Javascript 对象如何存储在Kineticjs中的Kinetic.Layer中?
我目前正在创建一个三角形网格,使用一个for循环,在一个单独的数组中使用一组预先确定的坐标 像这样:Javascript 对象如何存储在Kineticjs中的Kinetic.Layer中?,javascript,kineticjs,Javascript,Kineticjs,我目前正在创建一个三角形网格,使用一个for循环,在一个单独的数组中使用一组预先确定的坐标 像这样: function createTri(x, y, z, a) { var tri = new Kinetic.RegularPolygon({ id: a, x: x, y: y, sides: 3,
function createTri(x, y, z, a) {
var tri = new Kinetic.RegularPolygon({
id: a,
x: x,
y: y,
sides: 3,
radius: 15,
rotation: z,
fillRed: 17,
fillGreen: 17,
fillBlue: 17,
closed: true,
shadowColor: '#5febff',
shadowBlur: 5,
shadowOpacity: 0.18
});
layer.add(tri);
}
for (var i = 0; i < pax.length; i++){
for (var j = 0; j < pax[i].length; j++){
createTri(pax[i][j][0],pax[i][j][1],pax[i][j][2],(i+'')+(j+''));
};
}
函数createTri(x,y,z,a){
var tri=新的动能调节多边形({
id:a,
x:x,
y:y,
双方:3,,
半径:15,
旋转:z,
菲尔瑞德:17,
菲尔格林:17,
蓝色:17,
关闭:是的,
阴影颜色:“#5febff”,
阴影模糊:5,
阴影不透明度:0.18
});
层。添加(tri);
}
对于(变量i=0;i
但是,当我试图从层容器返回特定id的console.log()
时,我得到的只是代码而不是id号
我不完全确定我是把它称为动能错误,还是说它总体上是错误的
所以我想我需要知道通过id属性调用对象的正常方式是什么,或者如何从dynamic.Layer正确地调用它
编辑:为了解释,我试图调用它的方式在动能文档中定义为
node.find('selector')代码>,因此,当尝试按id查找时,我尝试登录到控制台:console.log(layer.find('#1674')代码>但是,当我这样做时,控制台会记录一个原型对象以及所有可能的关联函数,而不是我试图调用的对象。我怀疑问题的根源在于三角形对象的id不是您所期望的
您应该会看到这样的内容(在Chrome中):
你看到了吗
[each: function, toArray: function, _init: function, _clearCache: function, _getCache: function…]
这就是当我向层的find
方法提供无效id时得到的结果
这里有一把小提琴来说明:这正是我得到的。我的id Im设置应该是字符串而不是值。。。但我可能错了。我将字符串设置为(i++“”)+(j++“”)
,这应该将其更改为字符串而不是值。此外,为了验证Im是否选择了有效的id,Im控制台会记录生成三角形时生成的所有id。所以我从我看到的中挑选了一个。图层对象的范围是什么?您是否已验证正在将形状添加到正在检查的节点(例如node.getChildren().length
)中?您还可以在您的Kinetic stage对象上运行find
,如果该对象位于您不期望的节点中,它应该返回该对象。另外,请注意id冲突,例如i=1,j=11
和i=11,j=1
。是的,我运行了一个层.children.length
,得到了500多个。我假设这是正确的数字,但现在我可能需要实际计算可视画布上的每个三角形来确定。但是关于范围的问题。。。我不能完全肯定。这一点也很好,但我注意到id命名的结果是i=01,j=11或i=11,j=01,所以不会有太多问题。此外,我不确定在后台容器中搜索特定id如何才能找到节点的正确父节点?此外,如果有帮助的话,这里是我当前的项目github,您可以看到我当前的代码:@JSArrakis您是否尝试过console.log(layer.getChildren()[0].getAttr('id')
?
[each: function, toArray: function, _init: function, _clearCache: function, _getCache: function…]