在 Javascript 上使用 addEventListener 时 keydown 不起作用
keydown is not working when using addEventListener on Javascript
我正尝试在我的小 canvas game.But 中使用 "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;
}
你能帮我解决这个问题吗?
谢谢
请注意,您不能将 keydow
直接绑定到 canvas..而是将其绑定到整个 window
window.addEventListener("keydown", function, false);
我正尝试在我的小 canvas game.But 中使用 "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;
}
你能帮我解决这个问题吗? 谢谢
请注意,您不能将 keydow
直接绑定到 canvas..而是将其绑定到整个 window
window.addEventListener("keydown", function, false);