使用Kinetic JS,当整个舞台可以拖动时,我如何放大当前的舞台中心?
在previous question answer的帮助下,我让它从中心缩放。然而,问题在于它总是从原始中心点缩放,即使舞台被拖到其他地方也是如此。原始中心点不再是当前的中心点,因此当您放大时,舞台会开始移动到其他位置。
为了演示我创建了这个JSFiddle:http://jsfiddle.net/uJeyC/2/
var group = new Kinetic.Group({
x: width / 2,
y: height / 2,
width: width,
height: height
});
group.setOffset(width / 2, height / 2);
这是一张展示问题的图片:
我尝试了几个方法,比如计算当前的中心点,通过缩放因子多次计算组,然后计算新的中心点。使用与之相反的差异来抵消该组,但由于偏移量太大而无效。
一个类似的问题是:Adjusting offset on a dragged Kinetic.Path element in Kinetic JS to always keep the offset center to the Stage。但给出的答案并不令人满意,因为它建议一个从左上角放大的图书馆只适用于过时版本的KinectJS。