我目前正在使用KineticJS作为窗口填充Canvas应用程序。画布包含几个主要位于屏幕中心的形状,尽管其他几种形状将位于屏幕的边缘。
第一次显示页面时计算所有这些坐标不是问题,但我没有找到一种方法来处理窗口调整大小后/时的形状坐标。
通过jQuery,在调整窗口大小时调整舞台及其图层的大小,但由于这不会改变形状的坐标,因此以前居中的项目不再居中。
我是否真的需要遍历每一个形状并重新计算它们的坐标?这不是微不足道的,因为它们是用不同的公式计算的。
Sidenote,我实现了相同的应用程序,可直接访问Canvas(= w / o KineticJS)并通过重新渲染整个画布来处理调整大小;)由于render方法包括坐标计算,所以一切都在正确的位置。
答案 0 :(得分:0)
我通过为所有图层定义偏移并在窗口调整大小后重新计算这些偏移来解决我的问题。尽管不完美,计算8个值(4 * x + y)远远好于计算数百个。
如果有人知道更好的解决方案,我仍然会感兴趣。 ;)