kineticjs是否提供了attributeSelector?
我有许多含有相同名称的动力学形状。一些形状包含一个自定义属性,假设" userType"。我可以根据" useType"进行过滤从使用kineticjs的给定形状而不是手动操作?
答案 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!');
});