2014-10-31 4 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

관련 문제