Javascript document.addEventListener仅适用于1个键代码
我有一个简单的程序,这只是一个片段Javascript document.addEventListener仅适用于1个键代码,javascript,Javascript,我有一个简单的程序,这只是一个片段 window.onload = function() { var canvas = document.getElementById("paper"); var player = canvas.getContext("2d"); var background = canvas.getContext("2d"); var platform = canvas.getContext("2d"); var background
window.onload = function() {
var canvas = document.getElementById("paper");
var player = canvas.getContext("2d");
var background = canvas.getContext("2d");
var platform = canvas.getContext("2d");
var backgroundColor = "rgb(140, 75, 2)";
var platformColor = "rgb(60, 20, 123)";
var platformDistFromTop = 120;
var platformThickness = .5;
//This is where the walking skins are stored.
var playerWalkSkins = [
"Drawing (1).png", "Drawing (2).png",
"Drawing (3).png", "Drawing (4).png",
"Drawing (5).png", "Drawing (6).png",
"Drawing (7).png", "Drawing (8).png",
"Drawing (9).png", "Drawing (10).png",
"Drawing (11).png", "Drawing (12).png"
]
var playerXPos = canvas.width / 2;
var playerYPos = platformDistFromTop;
var playerSpeed = 4;
var currentSkin = 0;
var playerImg = new Image();
document.addEventListener('keydown', function (event) {
if (event.keyCode == 37) { //left arrow
playerXPos -= playerSpeed;
if (currentSkin == playerWalkSkins.length-1) {
currentSkin = 0;
}
else {
currentSkin++;
}
}
else if (event.keycode == 39) { //right arrow
playerXPos += playerSpeed;
if (currentSkin == playerWalkSkins.length-1) {
currentSkin = 0;
}
else {
currentSkin++;
}
}
}, false);
//Animation zone
setInterval(function() {
background.fillStyle = backgroundColor;
background.fillRect(0, 0, canvas.width, canvas.height);
platform.fillStyle = platformColor;
platform.fillRect(0, platformDistFromTop, canvas.width, platformThickness);
playerImg.src = playerWalkSkins[currentSkin];
player.drawImage(playerImg, playerXPos, platformDistFromTop-57, 60, 60);
}, 5);
}
问题可能在于事件列表器。我已经制作了其他程序,事件监听器正在工作,我看不出有什么不同。左箭头是正在工作的箭头
谢谢你的帮助,我希望我能继续我的项目。问题是你的第二个
事件。keycode
应该是事件。keycode
-这个案例在Javascript对象中很重要。如果您仍然卡住或需要任何帮助,请告诉我。您确定JavaScript控制台上没有错误吗?哈哈!太糟糕了,浏览器编译器没有捕获它。我想知道为什么。可惜我不能删除问题。哎呀。没问题,至少你知道你只会被一些完全不安全且容易错过的事情打败。这是一个关于堆栈的好问题,所以您不应该删除它,其他人可能会在某个时候遇到相同的问题。如果您对修复感到满意,请接受我们的答案。谢谢