2014-10-31 57 views
1

kineticjs是否提供attributeSelector?kineticjs是否提供属性选择器?

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

回答

1

KineticJS有一个myContainer.getChildren(fn)方法,可让您指定一个函数,用于从容器中提取一组儿童。

例如,如果你已经添加了这些圆形物体层:“!USERTYPE == pickMe”

// 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取得与元素

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

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

谢谢!!它为我工作:) – jrath 2014-11-02 18:51:12