我正在HTML5中開發一個十六進制網格戰略遊戲,並且由於向UI添加更多按鈕變得複雜,我正在使用KineticJS重寫我的代碼來繪製畫布。如何在KineticJS中獲取相對於其圖層的點擊事件的位置?
在我的遊戲中,有一個小地圖和一個顯示玩家相機位置的矩形。當玩家點擊小地圖時,他相機的中心將被設置爲他點擊的位置。我原來的代碼不使用任何外部庫,它看起來像這樣:
this.on('click', function(event){
var canvas = document.getElementById('gameCanvas');
var x = event.pageX - canvas.offsetLeft;
var y = event.pageY - canvas.offsetTop;
camera.setPos(// calculate new position based on x and y....);
}
})
所以基本上我想要的是Click事件相對於畫布的位置。由於現在KineticJS控制畫布,並且不讓我設置畫布編號,所以我不能使用getElementById
來選擇我的畫布。還有另一種方法可以做到嗎?
可能有一些方法我沒有弄清楚可以設置畫布ID,但我期待通過KineticJS API理想的更加優雅的解決方案。
謝謝。
當對象發生旋轉時無法正常工作。 – 2013-07-03 10:38:51