kineticjs是否提供属性选择器?

时间:2014-10-31 09:28:58

标签: kineticjs

kineticjs是否提供了attributeSelector?

我有许多含有相同名称的动力学形状。一些形状包含一个自定义属性,假设" userType"。我可以根据" useType"进行过滤从使用kineticjs的给定形状而不是手动操作?

1 个答案:

答案 0 :(得分:1)

KineticJS有一个myContainer.getChildren(fn)方法,允许您指定用于从容器中获取子集合的函数。

例如,如果您已将这些Circle对象添加到图层:

// add 3 Circles with attribute 'userType==pickMe!'

for(var i=0;i<3;i++){
    var c=new Kinetic.Circle({id:i,x:50,y:50+i*40,radius:15,fill:"red"});
    c.setAttr('userType','pickMe!');
    layer.add(c);
}

// add 1 circle with attribute 'userType==dontPickMe.'

var c=new Kinetic.Circle({id:i,x:50,y:170,radius:15,fill:"blue"});
c.setAttr('userType','dontPickMe.');
layer.add(c);

然后您可以使用layer.getChildren来获取带有'userType == pickMe!'的元素

// `var found` will contain the 3 Circles with 'userType==pickMe!'

var found=layer.getChildren(function(node){
    return(node.getAttr('userType')=='pickMe!');
});