| 
 обработка одновременно двух клавиш клавиатуры в браузере возможна? Это: 
<script type="text/javascript">
  document.onkeydown = function(e) {
    e = e || window.event;
    if (e.shiftKey && e.keyCode == 65) {
      alert('Shift + A');
    }
    return true;
  }
</script>
не дает должного эффекта. | 
| 
 Все работает | 
| 
 Вот: 
<html>
<head>
<style>
.gameLayer {position: absolute; top: 0px; left: 0px;}
</style>
<script>
knight = new Image(30,30);
knight.src = '1.png'
var knightObj = {x: 30, y:60};
function init(){
	drawKnight();
}
function drawKnight(){
	var ctx = document.getElementById('playerLayer').getContext("2d");
	ctx.drawImage(knight, knightObj.x, knightObj.y);
}
document.onkeydown = function(e) {
	var ctx = document.getElementById('playerLayer').getContext("2d");
	ctx.clearRect(knightObj.x,knightObj.y,25,30);
    e = e || window.event;
    if (e.keyCode == 38 && e.keyCode == 39) {
      	knightObj.x-=2;
		knightObj.y-=2;
    }
	drawKnight();
}
</script>
</head>
<body onload="init()">
<canvas id="playerLayer" class="gameLayer" height="160" width="300"></canvas>
</body>
</html>
Если оставить одну клавишу - работает, две - нет. | 
| 
 Destrifer, e.keyCode == 38 && e.keyCode == 39 Как вы себе представляете равенство одной переменной сразу двум значениям? Вам нужно в обработчике снимать/поднимать флаг при нажатии/отпускании клавиши с keyCode 38 и обрабатывать событие нажатия клавиши с keyCode 39, при условии поднятого флага. | 
| 
 Ясно, спасибо. p.s. И все же не ясно: Цитата: 
 | 
| 
 Когда нажимаешь одну кнопку - поднимается один флаг, когда отпускаешь - опускается. Если нажмешь вторую, поднимется другой флаг. Если первая все еще нажата - подняты оба флага - значит обе кнопки одновеменно нажаты. | 
| 
 Цитата: 
 | 
| 
 Ну, да, примерно такие ассоциации у меня и возникали, когда это писал :D | 
| 
 Цитата: 
 | 
| Часовой пояс GMT +3, время: 13:19. |