2013-12-21 4 views
0

기본적으로 모든 레이어의 크기를 조정하고 레이어의 위치를 ​​조정하여 확대하는 응용 프로그램이 있습니다. 그러나 나는 레이어의 크기에 상관없이 줌 레벨에 관계없이 동일한 크기를 유지해야하는 일부 레이어에 원 (및 이미지)을 많이 가지고 있습니다.KineticJS - 확대/축소 후 이미지/도형 조정

반복하지 않고 레이어의 모든 모양/이미지의 비율을 설정할 수있는 방법이 있습니까? 그룹을 사용하여 보았지만 보편적 인 척도를 설정하는 보편적 인 방법은 없습니다.

그렇지 않은 경우 반복하지 않고 효율적인 방법이 있습니까?

답변

0

스케일링되지 않은 개체를 별도의 그룹에 넣은 다음 그룹 레이어의 배율 인수에 따라 해당 그룹의 크기를 조정하고 다시 정렬하십시오.

데모 : http://jsfiddle.net/m1erickson/2X7eK/

var scaleFactor=2; 

// scale the entire layer by 2X 

layer.setScale(scaleFactor); 

// unscale just the noGroup back to original size 

noGroup.setScale(1/scaleFactor); 

// reposition just the noGroup back to it's original position 
// before the layer was resized 

noGroup.setPosition(noGroup.getX()/scaleFactor,noGroup.getY()/scaleFactor); 
+0

내가 틀렸다,하지만 난 당신의 솔루션은 줌을 수행하지 않습니다 믿는다면 정정 해줘, 오히려 그것이 층과 모두를 확장하여 줌없이 무대와 같은 이미지를 재현 그룹 (하나의 그룹을 하위 레이어로 생각할 수 있음)은 서로를 상쇄합니다. 내가 필요한 것은 사용자가 확대 할 때 모양/이미지 사이의 거리가 증가하지만 크기는 그대로 유지됩니다 (더 일반적인 줌에서는 모양/이미지 크기와 거리가 모두 증가합니다). – tenble

+0

레이어에 두 종류의 객체가 있다고 가정합니다 (1) 일부는 비율을 조정하고 (2) 일부는 비율을 조정하지 않는 것이 좋습니다. 이 경우 레이어의 모든 항목의 크기는 조정되지만 noScaleGroup은 원래 크기로 조정되지 않습니다. 이게 니가 원하는게 아니야? – markE

+0

미안하지만 분명히해야했습니다. 내가 필요한 것은 확대/축소 수준 (예 : 25x25)에 관계없이 고정 된 상수가되도록 도형의 크기를 필요로한다는 점을 제외하면 일반 확대/축소 (모양 사이의 거리와 거리 증가)와 정확히 똑같이 수행하는 확대/축소 조작입니다. 그룹 간의 비율을 줄이면 그룹을 확장해도 작업이 수행되지 않습니다. – tenble

관련 문제