Страница 1 из 1

Проблема с событиями клавиатуры

Добавлено: 07 авг 2012, 22:15
Derial
Доброго времени суток. Первый раз взялся за работу с клавиатурой и вот возникла проблема - мне нужно чтобы при нажатии одновременно двух клавиш(например UP и RIGHT происходило какое-то действие(с этим я справился, привожу код:)

Код: Выделить всё

    private var rightDown:Boolean = false;        private var leftDown:Boolean = false;        private var upDown:Boolean = false;        private var downDown:Boolean = false;           stage.addEventListener(KeyboardEvent.KEY_DOWN, keydown);        stage.addEventListener(KeyboardEvent.KEY_UP, rightUP);         private function keydown (e:KeyboardEvent):void {                if(e.keyCode == Keyboard.RIGHT){        tank2.rotation += 5;        rightDown = true;        }else if(e.keyCode == Keyboard.LEFT){        tank2.rotation -= 5;        leftDown = true;        }                var dirAngle:Number = tank2.rotation / 180 * Math.PI;                if (e.keyCode == Keyboard.UP /*|| upTest == 1*/) {        tank2.x += speedTank * Math.cos(dirAngle);        tank2.y += speedTank * Math.sin(dirAngle);        upDown = true;        }else if(e.keyCode == Keyboard.DOWN){        tank2.x -= speedTank * Math.cos(dirAngle);        tank2.y -= speedTank * Math.sin(dirAngle);        downDown = true;        }                if (rightDown == true && upDown == true) {            tank2.x += speedTank * Math.cos(dirAngle);            tank2.y += speedTank * Math.sin(dirAngle);            tank2.rotation += 5;        }        if (rightDown == true && downDown == true) {            tank2.x -= speedTank * Math.cos(dirAngle);            tank2.y -= speedTank * Math.sin(dirAngle);            tank2.rotation += 5;        }        if (leftDown == true && upDown == true) {            tank2.x += speedTank * Math.cos(dirAngle);            tank2.y += speedTank * Math.sin(dirAngle);            tank2.rotation -= 5;        }        if (leftDown == true && downDown == true) {            tank2.x -= speedTank * Math.cos(dirAngle);            tank2.y -= speedTank * Math.sin(dirAngle);            tank2.rotation -= 5;        }        }                private function rightUP(e:KeyboardEvent):void {            if(e.keyCode == Keyboard.RIGHT){        rightDown = false;        trace('rightDown = false;');        }        if(e.keyCode == Keyboard.LEFT){        leftDown = false;        trace('leftDown = false;');        }        if(e.keyCode == Keyboard.UP){        upDown = false;        trace('upDown = false;');        }        if(e.keyCode == Keyboard.DOWN){        downDown = false;        trace('downDown = false;');        }        }             

Как мне сделать чтобы при отпускании клавиши RIGHT объект продолжал двигаться в перед(т.е клавиша UP находилась в состоянии "нажата")?

Re: Проблема с событиями клавиатуры

Добавлено: 07 авг 2012, 23:30
Derial
Нашел решение!!! Эта жара меня совсем убила(мозги сварились, к вечеру похолодало и мозг остыл, заработал)
Может кому нужно? могу выложить.

Re: Проблема с событиями клавиатуры

Добавлено: 22 авг 2012, 05:52
bodnar
нужно не спрашивать, а сразу выкладывать