我在Kineticjs中遇到了麻烦,在我的代码中:
var G1=new Kinetic.Group()
var sq=new Kinetic.Rect({
x:0,
y:0,
name:"sq"
})
var line1=new Kinetic.Line({
Points:[0,0,10,10],
name:"line1"
})
var line2=new Kinetic.Line({
Points:[0,0,50,50],
name:"line1"
})
G1.add(sq).add(line1).add(line2)
我知道要让G1的孩子输入“G1.getChildren()”。但是要获得具有相同类型的孩子,例如类型Kinetic.Line,我不知道。 请帮助我,tahnks
答案 0 :(得分:2)
var shapes = layer.get(' Line');
在KineticJS中,形状类型与DOM标签类似。您可以按名称选择它们。
答案 1 :(得分:1)
所以@Grant Timmerman的例子会起作用,但我不确定对于孩子们来说,你只能拥有形状,所以我建议你这样做:
var lines = G1.getChildren().filter(function(element) {
return element instanceof Kinetic.Line;
});
我不太了解动力学,这就是我做出这个假设的原因。
答案 2 :(得分:0)
只需使用Shape的shapeType
属性。
以下是获取KineticJS Lines数组的示例
var lines = G1.getChildren().filter(function(element) {
return element.shapeType === 'Line';
});