2013-03-03 78 views
0

我目前使用KineticJS窗口填充畫布應用程序。畫布包含幾個主要與屏幕中心相關的形狀,雖然其他幾個形狀將會放置在屏幕的邊緣。如何在窗口大小調整後(有效)重新定位KineticJS形狀?

第一次顯示頁面時計算所有這些座標不是問題,但我沒有找到一種方法來處理窗口大小調整後/之後的形狀座標。

通過jQuery,舞臺和它的圖層被調整大小,當窗口被調整大小時,但由於這不會更改形狀的座標,以前居中的項目不再居中。

我真的需要遍歷每一個形狀並重新計算它們的座標嗎?不是微不足道的,因爲它們是用不同的公式計算的。

旁註,我實現直接訪問畫布相同的應用程序(= W/O KineticJS),只是通過重新渲染整個畫布處理的調整大小;)由於渲染方法包括在座標計算中,一切都始終在正確的位置。

+0

你會堅持爲你想要的東西工作。 – 2013-03-03 02:05:10

+0

嗯..不幸的是,手動/直接的方式不給我舒適事件處理等,所以我寧願繼續遷移到kineicjs;)無法想象,像調整窗口大小一個基本的東西呈現這樣一個大問題: ) – Pharao2k 2013-03-03 03:59:58

+0

你爲什麼不只是規模在kineticjs整個舞臺,這種方式不重新計算是必要的。看看我製作的這個行星軌道調整器:'cs.neiu.edu/~tsam/planets'(拖動太陽調整大小)。這使用比例尺,而不是重新計算頭寸。同一種邏輯可以適用於窗口大小和縮放時調整窗口大小 – SoluableNonagon 2013-03-05 16:58:12

回答

0

我通過爲所有圖層定義偏移量並在發生窗口大小調整後重新計算這些偏移量來解決了我的問題。雖然不完美,但計算8個值(4 * x + y)遠遠好於計算數百個值。

如果有人知道一個更好的解決方案,我仍然有興趣。 ;)

相關問題