Я хочу написать простую функцию JavaScript, которая будет отображать имя каждой клавиши, которую я нажимаю всякий раз, когда я нажимаю клавишу. Я собираюсь попытаться создать игру, такую как старинная сороконожка, но мне нужно иметь возможность сканировать ключи каждый раз, когда ключ падает.
Вопрос. Как мне изменить этот код, чтобы он сканировал и выписал имя ключа при запросе события с нажатием клавиши?
Код HTML:
<body onload="docReady()" onkeydown="checkForNewKey()" onkeyup="" bgcolor='black'>
<canvas id="myCanvas" width="450" height="600" style="border:1px solid #00FFFF;">
Your browser does not support the HTML5 canvas tag.
</canvas>
код:
function checkForNewKey(){
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d"); <-- Exactly why does this need to be here and what does it do?
ctx.font="30px Arial";
var temp = evt.keyCode;
ctx.fillText(temp,20,50);
}
Вы должны использовать событие нажатия клавиши. Не уверен, какова ваша конечная цель - писать на холст, но проверьте это для получения дополнительной информации: http://diveintohtml5.info/canvas.html
Для написания письма это работает:
JSFiddle http://jsfiddle.net/kS7S3/
document.onkeypress = function (e) {
var evt = evt || window.event;
var charCode = typeof evt.which == "number" ? evt.which : evt.keyCode;
console.log(charCode, String.fromCharCode(charCode));
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.font="30px Arial";
ctx.clearRect(0,0,100,100);
ctx.fillText(String.fromCharCode(charCode),20,50);
return true; // proceed as usual
};
HTML
<canvas id="myCanvas" style="width:100px;;height:100px;background-color:red;"></canvas>