2013-12-21 78 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