Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как сделать нормальный лисенер кнопок? (http://www.flasher.ru/forum/showthread.php?t=133924)

engineer_f_R 16.12.2009 18:57

Как сделать нормальный лисенер кнопок?
 
Код AS3:

var SpaceIsDown:Boolean;
var KeyPressed:int;
 
stage.addEventListener(KeyboardEvent.KEY_DOWN, KeyPress_f);
stage.addEventListener(KeyboardEvent.KEY_UP, KeyRelease);
 
function KeyPress_f(event:KeyboardEvent):void{
        KeyPressed = event.keyCode;
                if(KeyPressed == Keyboard.SPACE){SpaceIsDown=true;}
                }
 
function KeyRelease(event:KeyboardEvent):void{
        var KeyReleaseCode:int = event.keyCode;
                if(KeyPressed == Keyboard.SPACE){SpaceIsDown=false;}
        }
 
stage.addEventListener(Event.ENTER_FRAME, aaa);
 
function aaa(e:Event):void{
        trace(SpaceIsDown)
}

вот мой код прослушивания нажатия клавиши пробел. Но беда в том, что если нажать пробел, затем нажать клавишу вправо(влево, вверх, вниз, контрол, шифт, альт) не отпуская пробел, а затем отпустить пробел, то SpaceIsDown всё-равно будет true. :o

Такая реакция только с прослушиванием клавишь вверх, вниз, влево, вправо, контрол, шифт, альт и пробел. Другие клавиши друг друга не перебивают.

Подскажите как сделать чтобы и эти клавиши не перебивали друг друга!

VVall 16.12.2009 19:12

Вы обратили внимание, что в обработчике события отпускания клавиши проверяете не ту переменную?

engineer_f_R 16.12.2009 19:28

АаАаА!!!! Я весь вечер пытаюсь понять что не так!!! Я тупой! =)
Спасибо тебе добрый человек!


Часовой пояс GMT +4, время: 08:09.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.