Форум 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=142360)

Dr_Bra 19.07.2010 15:56

событие клавиатуры
 
Всем привет!
Не получается определить событие клавиатуры, подскажите где я ошибаюсь:
Код AS3:

package 
{
    import flash.display.*;
    import flash.events.*;
        import flash.text.*
 
    public class KeyboardEventExample extends Sprite
        {       
                private var keyOutput:TextField;
 
        public function KeyboardEventExample()
                {
                        keyOutput=new TextField();
                        keyOutput.text="нажми любую клавишу...";
                        keyOutput.autoSize=TextFieldAutoSize.LEFT;
                        keyOutput.border=true;
                        keyOutput.background=true;
                        addChild(keyOutput);
 
            stage.addEventListener(KeyboardEvent.KEY_DOWN, showMy);
 
        }
                private function showMy(e:KeyboardEvent):void
                {
                        keyOutput.text=e.keyCode;
                }
    }
}


PeTa4eK 19.07.2010 16:46

Тестируете в Flash? Если да, то возможно флеш не дает вам взять эту клавишу. Т.к. она используется в самой программе(горячая клавиша)

Dr_Bra 19.07.2010 16:58

Вложений: 1
Цитата:

Сообщение от PeTa4eK (Сообщение 923305)
Тестируете в Flash? Если да, то возможно флеш не дает вам взять эту клавишу. Т.к. она используется в самой программе(горячая клавиша)

дело в том что выдается ошибка:

gen4 19.07.2010 17:17

Код AS3:

keyOutput.text=String(e.keyCode);


mikhailk 19.07.2010 17:18

Код AS3:

        var keyCodeUint:uint = e.keyCode;
        keyOutput.text = keyCodeUint.toString;


Dr_Bra 19.07.2010 17:44

спасибо!

Добавлено через 30 минут
а если делать проверку, как правильно написать что бы не было той же ошибки?
Код AS3:

private function checkKey(evt:KeyboardEvent):void
                {
                        if(e.keyCode==27)
                                {
                                        ...
                                }
                }


mikhailk 19.07.2010 18:23

да, правильно

Dr_Bra 19.07.2010 18:32

Вложений: 1
Цитата:

Сообщение от mikhailk (Сообщение 923364)
да, правильно

почему-то ругается:

d_ruha 19.07.2010 18:36

в функцию событие передается как "evt", а не как "e", поэтому проверку нужно делать:
Код AS3:

if(evt.keyCode==27)


mikhailk 19.07.2010 18:41

Код AS3:

private function checkKey(evt:KeyboardEvent):void
{
        if(evt.keyCode==27)
        {
                ...
        }
}



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

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