我在学校有一项任务,我们应该使用箭头键在画布中创建一个可移动的对象。我在完成代码并使对象实际移动时遇到了麻烦。截至目前,我只收到一个警告框,显示文字" undefined"当尝试使用右箭头键移动对象时(因为此键是我目前唯一开始使用的键)。有没有人对如何完成此代码有一些线索?我将非常感激!
window.onload = function(){
var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');
var x = 0;
var y = 0;
context.fillStyle = "#c409a3";
context.fillRect(x, y, 100, 100);
}
document.onkeydown = function(e){
alert(e.keycode);
var rect = new Object();
rect.x = 0;
rect.y = 0;
rect.moveright = function(){rect.x++;}
rect.draw = function(){
context.fillStyle = "#c409a3";
context.fillRect(rect.x, rect.y, 100, 100)
}
}
rect.erease = function(){
}
rect.moveleft = function(){rect.x--;}
rect.moveup = function(){rect.y++;}
rect.movedown = function(){rect.y--;}
if (e.keyCode == "39"){
rect.erease();
rect.moveright();
rect.draw();
}
if (e.keyCode == "37"){
rect.erease();
rect.moveleft();
rect.draw();
}
if (e.keyCode == "38"){
rect.erease();
rect.moveup();
rect.draw();
}
if (e.keyCode == "40"){
rect.erease();
rect.movedown();
rect.draw();
}
答案 0 :(得分:0)
由于这是家庭作业,您无法获得完整的解决方案。但你需要考虑(至少):
除此之外,请查看事件API。属性keyCode位于驼峰大小写而不是小写。
alert(e.keyCode); // camel case
这将解决undefined
问题