如何让孩子有相同类型的Kineticjs

How to get Children that have same type Kineticjs?

本文关键字:同类型 Kineticjs 孩子      更新时间:2023-09-26

我在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()"。但是为了得到相同类型的孩子比如动能类型。我也不知道。请帮帮我,谢谢

很抱歉没有这方面的教程,但您可以按以下类型选择子元素:

var shapes = layer.get('Line');

在KineticJS中,形状类型类似于DOM标签。

那么@Grant Timmerman这个例子就可以了但是我不确定对于儿童来说你是否只能使用形状所以我建议你这样做:

  var lines = G1.getChildren().filter(function(element) {
    return element instanceof Kinetic.Line;
  });

我不太了解动力学,所以我做了这个假设

直接使用Shape的shapeType属性

下面是一个获取KineticJS Lines数组的示例

var lines = G1.getChildren().filter(function(element) {
    return element.shapeType === 'Line';
});