2012-02-21 394 views
0

我在畫布上工作,現在我已經達到了需要找到鼠標座標的位置,這樣我可以在畫布內製作「按鈕」。但是,當我嘗試捕獲座標並在函數中使用它們來確定鼠標是否在按鈕內時,它不起作用。無法從畫布檢索鼠標座標

我的座標檢索方法有什麼問題?這是爲了一個我和朋友正在參加學校項目的遊戲。

下面的代碼:

<!-- game canvas --> 
<canvas id="canvas" width="900" height="600"> 

<!-- no-support message --> 
Se está a ver isto, o seu browser não suporta HTML5. 

</canvas> 

只需在畫布上,因爲nohing別的真正重要的。

這裏的JavaScript:

//find mouse coordinates 

var mouseX = 0, mouseY = 0; 

$('#canvas').mousemove(function(e){ 
    mouseX = e.pageX - this.offsetLeft; 
    mouseY = e.pageY - this.offsetTop; 
}); 
+0

你可以在你的問題中包括你的來源或相關部分嗎?在堆棧溢出中,即使其他站點消失,我們也希望問題和答案在未來有用,而您的Gist似乎已經消失。 – 2012-02-23 11:58:15

+0

(我沒有低估這個問題。)我的意思是在問題中包括來源,而不是像gist.github.com這樣的外部網站。 SO會自動限制它們的高度,所以不要擔心長度(這不是很多)。 – 2012-02-23 13:58:00

回答

3

var創建一個局部變量。但是,對於您的情況,您想要更新以外的變量而不是創建新的本地函數。所以,只需在mousemove函數內刪除var即可。

目前,外部變量被局部變量「隱藏」,並且變得不可訪問。

http://jsfiddle.net/wXMyH/1/