如何(有效地)重新定位kineticjs形状后,窗口调整大小



我目前正在使用KineticJS的窗口填充画布应用程序。画布包含几个形状,这些形状主要定位在屏幕的中心,尽管还有几个形状将定位在屏幕的边缘。

计算所有这些坐标的第一次页面显示不是一个问题,但我还没有找到一种方法来处理形状坐标后/当窗口调整大小。

通过jQuery,舞台和它的层被调整大小当窗口的大小调整,但由于这不会改变形状的坐标,以前居中的项目不再居中。

我真的需要遍历每个形状并重新计算它们的坐标吗?这不是微不足道的,因为它们是用不同的公式计算的。

旁注,我实现了与直接访问画布相同的应用程序(= w/o KineticJS),并通过重新渲染整个画布来处理调整大小;)因为渲染方法包含了坐标计算,所以所有的东西都在正确的位置。

我通过定义所有图层的偏移量并在窗口大小发生后重新计算这些偏移量来解决这个问题。虽然不完美,但计算8个值(4 * x+y)比计算数百个值要好得多。

如果有人知道更好的解决方案,我仍然很感兴趣。div;)

最新更新