2011-06-10 71 views
1

我製作了一個遊戲,使用HTML5 Canvas Element,Javascript for facebook。您可以在這裏訪問它,http://apps.facebook.com/snaqe_game。我面對的問題是,當我按下箭頭鍵時,用於移動使用Javascript onkeydown事件實現的蛇,遊戲正常工作,但滾動條上下移動。我試着製作一個文本框(#activ)並設置焦點。它工作,但當我試圖讓它看不見時,它失敗了。如何停止使用JavaScript onkeydown事件後帆布遊戲的Facebook滾動條?

document.onkeydown = function(event) { 
    document.getElementById('activ').focus() 
    if (!allowPressKeys) { 
     return null; 
    } 
    var keyCode; 
    if(event == null) { 
     keyCode = window.event.keyCode; 
    } else { 
     keyCode = event.keyCode; 
    } 

    switch(keyCode) { 
     case 37: 
      if (direction != "right") { 
       moveLeft(); 
      } 
      break; 

     case 38: 
      if (direction != "down") { 
       moveUp(); 
      } 
      break; 

     case 39: 
      if (direction != "left") { 
       moveRight(); 
      } 
      break; 

     case 40: 
      if (direction != "up") { 
       moveDown(); 
      } 
      break; 

     default: 
      break; 
    } 
} 

回答

1

在你document.onkeydown函數的結束(線197 snake.js之後),加

if (event.preventDefault) { event.preventDefault(); } 
if (event.stopPropagation) { event.stopPropagation(); } 
return false; 

這阻止瀏覽器響應事件,以致執行你的功能。

您可能還需要用這三行替換161行上的return null;


+0

好讓我試試。 – 2011-06-10 08:10:41

+0

工作過的很棒!謝啦! – 2011-06-10 08:15:35