【问题标题】:keydown is not working when using addEventListener on Javascript在 Javascript 上使用 addEventListener 时 keydown 不起作用
【发布时间】:2020-08-10 06:24:30
【问题描述】:

我正在尝试在我的小画布游戏中使用“keydown”作为 getEventListener。但它不起作用; 我只是想用 keydown 移动我的对象。

<script>
var tuval = document.getElementById("tuval");
var cizim = tuval.getContext("2d");
tuval.addEventListener('keydown',keypress);
function keypress(e){
    if (e.keyCode === 37){
    dx = dx * -1;}
}
var en = tuval.width;
var boy = tuval.height;
var x = en/2;
var y = boy/2;
var dx = 2;
var dy = 4;
function ziplayantop() {
  temizle();
  cizim.beginPath();
  cizim.arc(x,y,10,0,2*Math.PI);
  cizim.closePath();
  cizim.fillStyle="#ff0000";
  x = x + dx;
  y = y + dy;
  cizim.fill();
  if (x>en-5||x < 0 ) {
      dx = -1 * dx;
  }
  if (y>boy-5||y < 0) {
    dy = -1 * dy;
  }
  if (tiklama) {
    dx = -1 * dx;
    dy = -1 * dy;
  }
}
function temizle(){
  cizim.beginPath();
  cizim.fillStyle="#ffffff";
  cizim.fillRect(0,0,tuval.width,tuval.height);
  cizim.closePath();
  cizim.fill();
}
setInterval(ziplayantop,50);
</script>

当我像这样用“clik”替换“keydown”时它会起作用;

tuval.addEventListener('click',keypress);

function keypress(){
    dx = dx * -1;
}

您能帮我解决这个问题吗? 谢谢

【问题讨论】:

标签: javascript canvas addeventlistener keydown onkeydown


【解决方案1】:

请注意,您不能将keydow 直接绑定到画布。而是将其绑定到整个窗口

window.addEventListener("keydown", function, false);

【讨论】:

    猜你喜欢
    • 2013-03-16
    • 2021-04-19
    • 1970-01-01
    • 2017-11-02
    • 2016-02-27
    • 2011-06-20
    • 1970-01-01
    • 1970-01-01
    • 2016-11-08
    相关资源
    最近更新 更多