Цитата:
Сообщение от DearSanta
Если нажать строго одновременно, то все работает, но если, например, зажать стрелку, а потом нажать прыжок, персонаж тупо останавливается, и больше не реагирует на стрелку, только на кнопку прыжка.
 Код AS3:
function ef(e:Event):void
if(jump) вообще советую переносить скобки, так понятней где конец и где начало, во Flash кстати
можно настроить что бы перенос был автоматически
{
hero.y = speedY;
stage.removeEventListener(KeyboardEvent.KEY_DOWN, kd);
}
а зачем Вы тут стираете слушатель? конечно будет глюк с клавиатурой
function kd(e:KeyboardEvent)
{
if(e.keyCode == 32)
{
}
}
зачем цифры? неудобно и непонятно, используйте import flash.ui.*; и тогда можно указывать название клавиши
например - if(e.keyCode == Keyboard.SPACE)
function ku(e:KeyboardEvent)
{
stage.addEventListener(KeyboardEvent.KEY_DOWN, kd);
зачем вешаете слушатель опять?
}
|
советую доработать код,логику посмотреть, убрать ненужные слушатели
Не знаю как у вас одновременно работают несколько клавиш,скорей всего Flash надрывается и думает что вы все таки жмете, например я делал как вы раньше, но потом сделал такой опыт, например ставишь квадрат на сцену и видишь что это на самом деле не одновременное нажатие, особенно если частоту кадров уменьшить
лучше в духе таком

Код AS3:
if(e.keyCode == Keyboard.UP)
{
moveUp = true;
}
if(e.keyCode == Keyboard.RIGHT)
{
moveRight = true;
}
тогда вы заметите что управление куда податливей
также мой вам совет,да и все так скажут, названия понятливые давать а не ku и т.д
даже если вы это делаете в качестве теста, а тем более если рабочий проект со временем будет непонятен код, что за ku. Хотя мне тоже бывает лень писать название))).Я надеюсь это то что вам нужно, по крайней мере у меня работает эта система исправно.