2015-10-18 34 views
0

我試圖讓HTML5遊戲,只要玩家按下鼠標左鍵,子彈繼續產卵,一旦LMB被釋放,拍攝停止。這是我的功能:使用Javascript - 鼠標左鍵功能只執行一次LMB被釋放

document.onclick = function(mouse){ 
    console.log("Shoot"); 
} 

只有當LMB被釋放後,該消息才顯示在控制檯日誌中。 我沒有過目計算器,發現這個: Qt mouseMoveEvent only when left mouse button is pressed 但我沒把它融入我的畫布...它只是不會做任何事情。 謝謝你的時間。

+0

如果 '子彈產卵',你的意思是'的console.log( 「拍」);',你只需要使用'mousedown',而不是'.onclick'。但是如果你想讓一些函數繼續運行(例如'fireBullet();')**,而**鍵正在被**保持**,你可以參考我的答案。 – salmanxk

回答

1

「的onclick」呼籲鼠標功能單擊起來。你需要一個更具體的事件監聽器。

你尋找的是什麼,假設你的使用情況是準確的,是「onmousedown事件」。

請參閱此鏈接的詳細信息:http://www.w3schools.com/jsref/event_onmousedown.asp

只需更換 「點擊」 與 「onmousedown事件」。

希望幫助!

0

onclick方法被調用時,你發佈鼠標按鈕,而不是被按下。你需要的是mousedown方法。

此外,您還需要改寫你的問題有點。據我瞭解,

你想要的東西發生鼠標鍵被舉行 下來。

要做到這一點,您需要調用mousedown活動的某些合理的時間間隔。

var mousedownID = -1; //Global ID of mouse down interval 
function mousedown(event) { 
    if(mousedownID==-1) //Prevent multimple loops! 
    mousedownID = setInterval(whilemousedown, 100 /*execute every 100ms*/); 


} 
function mouseup(event) { 
    if(mousedownID!=-1) { //Only stop if exists 
    clearInterval(mousedownID); 
    mousedownID=-1; 
    } 

} 
function whilemousedown() { 
    /*put your code here*/ 
    /* i.e, whatever you what to keep on happening while the button is down*/ 
} 
//Assign events 
document.addEventListener("mousedown", mousedown); 
document.addEventListener("mouseup", mouseup); 
//Also clear the interval when user leaves the window with mouse 
document.addEventListener("mouseout", mouseup); 
相關問題