Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Перевод кода клавиши в символ ASCII (http://www.flasher.ru/forum/showthread.php?t=117063)

ktotam 17.10.2008 18:53

Перевод кода клавиши в символ ASCII
 
Здравствуйте!
Банальный вопрос, как перевести код клавиши в символ или набор символов? Неужели в самом деле описывать вручную?
Добродарю.

etc 17.10.2008 19:13

String.fromCharCode, Key.getAscii

ktotam 17.10.2008 19:20

String.fromCharCode Преобразует код символа в строку. А мне нужено код клавиши преобразовать в символ ASCII

например клавиша "Left"
Key.getCode()=37
String.fromCharCode(37)=%

Ну и остальные функциональные клавиши

etc 17.10.2008 19:28

Не понимаю. Символ — не строка?

Код:

onKeyDown = function() {
    trace(String.fromCharCode(Key.getAscii()));
}
Key.addListener(this);

Или вам ещё нужны имена всех остальных клавиш? Если да, то в хелпе есть таблица, сделайте класс с соответствиями (благо, не так уж и много) и вуаля.

ktotam 17.10.2008 19:34

Вложений: 1
хорошо, сделаю. Спасибо за совет.

Домашнее задание выполнил.
Если кому пригодится
Код:

//Клавесин.as
class Клавесин{
        public function Клавесин(код_клавиши:Number):String {
                switch(код_клавиши){
                        case 8:
                                return("Backspace")
                        break
                        case 9:
                                return("Tab")
                        break
                        case 13:
                                return("Enter")
                        break
                        case 16:
                                return("Shift")
                        break
                        case 17:
                                return("Ctrl")
                        break
                        case 19:
                                return("Pause/Break")
                        break
                        case 20:
                                return("Caps Lock")
                        break
                        case 27:
                                return("Escape")
                        break
                        case 32:
                                return("space")
                        break
                        case 33:
                                return("Page Up")
                        break
                        case 34:
                                return("Page Down")
                        break
                        case 35:
                                return("End")
                        break
                        case 36:
                                return("Home")
                        break
                        case 37:
                                return("Left")
                        break
                        case 38:
                                return("Up")
                        break
                        case 39:
                                return("Right")
                        break
                        case 40:
                                return("Down")
                        break
                        case 45:
                                return("Insert")
                        break
                        case 46:
                                return("Delete")
                        break
                        case 96:
                                return("Num Pad 0")
                        break
                        case 97:
                                return("Num Pad 1")
                        break
                        case 98:
                                return("Num Pad 2")
                        break
                        case 99:
                                return("Num Pad 3")
                        break
                        case 100:
                                return("Num Pad 4")
                        break
                        case 101:
                                return("Num Pad 5")
                        break
                        case 102:
                                return("Num Pad 6")
                        break
                        case 103:
                                return("Num Pad 7")
                        break
                        case 104:
                                return("Num Pad 8")
                        break
                        case 105:
                                return("Num Pad 9")
                        break
                        case 106:
                                return("Num Pad *")
                        break
                        case 107:
                                return("Num Pad +")
                        break
                        case 109:
                                return("Num Pad -")
                        break
                        case 110:
                                return("Num Pad .")
                        break
                        case 111:
                                return("Num Pad /")
                        break
                        case 112:
                                return("F1")
                        break
                        case 113:
                                return("F2")
                        break
                        case 114:
                                return("F3")
                        break
                        case 115:
                                return("F4")
                        break
                        case 116:
                                return("F5")
                        break
                        case 117:
                                return("F6")
                        break
                        case 118:
                                return("F7")
                        break
                        case 119:
                                return("F8")
                        break
                        case 120:
                                return("F9")
                        break
                        case 122:
                                return("F11")
                        break
                        case 123:
                                return("F12")
                        break
                        case 144:
                                return("Num Lock")
                        break
                        case 145:
                                return("Scroll Lock")
                        break
                        case 186:
                                return(";")
                        break
                        case 189:
                                return("-")
                        break
                        case 191:
                                return("/")
                        break
                        case 192:
                                return("`")
                        break
                        case 219:
                                return("[")
                        break
                        case 220:
                                return("\ ")
                        break
                        case 221:
                                return("]")
                        break
                        case 222:
                                return("'")
                        break
                        case 48:
                        case 49:
                        case 50:
                        case 51:
                        case 52:
                        case 53:
                        case 54:
                        case 55:
                        case 56:
                        case 57:
                        case 65:
                        case 66:
                        case 67:
                        case 68:
                        case 69:
                        case 70:
                        case 71:
                        case 72:
                        case 73:
                        case 74:
                        case 75:
                        case 76:
                        case 77:
                        case 78:
                        case 79:
                        case 80:
                        case 81:
                        case 82:
                        case 83:
                        case 84:
                        case 85:
                        case 86:
                        case 87:
                        case 88:
                        case 89:
                        case 90:
                                return(String.fromCharCode(код_клавиши) )
                        break
                }
        }
}

пока не сообразил правда как его вызывать, видимо нужно будет создать объект, послать код который нужно преобразовать, а потом удалить.

Код нерабочий A constructor may not specify a return type.

Ошибку понимаю, как разрешить не догадался, может поможете?

Всё исправил. Спасибо за дружественную атмосферу!
Код:

//any.fla
var keyListener:Object = new Object();
keyListener.onKeyDown = function() {
  _root.текст0.text =Key.getCode()+" = "+узнай_свою_судьбу.на_отдай(Key.getCode())
};
fscommand("trapallkeys","true");
var узнай_свою_судьбу:Клавесин = new Клавесин()

_root.createTextField("текст0",this.getNextHighestDepth(),215, 264, 150, 34)
_root.текст0.text = 'hello'
_root.текст0.type = "dynamic";
_root.текст0.border = true;
_root.текст0.background = true;
_root.текст0.password = false;
_root.текст0.multiline = true;
_root.текст0.embedFonts = false;
_root.текст0.variable = null;

Key.addListener(keyListener);

Код:

//Клавесин.as
class Клавесин{
        public function на_отдай(код_клавиши:Number):String {
                switch(код_клавиши){
                        case 8:
                                return("Backspace")
                        break
                        case 9:
                                return("Tab")
                        break
                        case 13:
                                return("Enter")
                        break
                        case 16:
                                return("Shift")
                        break
                        case 17:
                                return("Ctrl")
                        break
                        case 19:
                                return("Pause/Break")
                        break
                        case 20:
                                return("Caps Lock")
                        break
                        case 27:
                                return("Escape")
                        break
                        case 32:
                                return("space")
                        break
                        case 33:
                                return("Page Up")
                        break
                        case 34:
                                return("Page Down")
                        break
                        case 35:
                                return("End")
                        break
                        case 36:
                                return("Home")
                        break
                        case 37:
                                return("Left")
                        break
                        case 38:
                                return("Up")
                        break
                        case 39:
                                return("Right")
                        break
                        case 40:
                                return("Down")
                        break
                        case 45:
                                return("Insert")
                        break
                        case 46:
                                return("Delete")
                        break
                        case 96:
                                return("Num Pad 0")
                        break
                        case 97:
                                return("Num Pad 1")
                        break
                        case 98:
                                return("Num Pad 2")
                        break
                        case 99:
                                return("Num Pad 3")
                        break
                        case 100:
                                return("Num Pad 4")
                        break
                        case 101:
                                return("Num Pad 5")
                        break
                        case 102:
                                return("Num Pad 6")
                        break
                        case 103:
                                return("Num Pad 7")
                        break
                        case 104:
                                return("Num Pad 8")
                        break
                        case 105:
                                return("Num Pad 9")
                        break
                        case 106:
                                return("Num Pad *")
                        break
                        case 107:
                                return("Num Pad +")
                        break
                        case 109:
                                return("Num Pad -")
                        break
                        case 110:
                                return("Num Pad .")
                        break
                        case 111:
                                return("Num Pad /")
                        break
                        case 112:
                                return("F1")
                        break
                        case 113:
                                return("F2")
                        break
                        case 114:
                                return("F3")
                        break
                        case 115:
                                return("F4")
                        break
                        case 116:
                                return("F5")
                        break
                        case 117:
                                return("F6")
                        break
                        case 118:
                                return("F7")
                        break
                        case 119:
                                return("F8")
                        break
                        case 120:
                                return("F9")
                        break
                        case 122:
                                return("F11")
                        break
                        case 123:
                                return("F12")
                        break
                        case 144:
                                return("Num Lock")
                        break
                        case 145:
                                return("Scroll Lock")
                        break
                        case 186:
                                return(";")
                        break
                        case 189:
                                return("-")
                        break
                        case 191:
                                return("/")
                        break
                        case 192:
                                return("`")
                        break
                        case 219:
                                return("[")
                        break
                        case 220:
                                return("\ ")
                        break
                        case 221:
                                return("]")
                        break
                        case 222:
                                return("'")
                        break
                        case 48:
                        case 49:
                        case 50:
                        case 51:
                        case 52:
                        case 53:
                        case 54:
                        case 55:
                        case 56:
                        case 57:
                        case 65:
                        case 66:
                        case 67:
                        case 68:
                        case 69:
                        case 70:
                        case 71:
                        case 72:
                        case 73:
                        case 74:
                        case 75:
                        case 76:
                        case 77:
                        case 78:
                        case 79:
                        case 80:
                        case 81:
                        case 82:
                        case 83:
                        case 84:
                        case 85:
                        case 86:
                        case 87:
                        case 88:
                        case 89:
                        case 90:
                                return(String.fromCharCode(код_клавиши) )
                        break
                }
        }
        public function Клавесин(){
        }
}

Добродарю

Вложение 20628
:rtfm:

iNils 18.10.2008 01:04

Пользователь ktotam забанен на месяц за мультипостинг.

udaaff 18.10.2008 01:10

Лучше вместо case здесь использовать массив, в котором индексы элементов будут соответствовать кодам клавиш, а значения -- именам клавиш. Т.е. кодом клавиши "выбиваешь" из массива имя. Меньше вычислений будет.

etc 18.10.2008 13:25

Цитата:

Сообщение от udaaff (Сообщение 771120)
Лучше вместо case здесь использовать массив, в котором индексы элементов будут соответствовать кодам клавиш, а значения -- именам клавиш. Т.е. кодом клавиши "выбиваешь" из массива имя. Меньше вычислений будет.

Не говоря уже об элементарной проверки наличия индекса в массиве и при его отсутствии отправлять fromCharCode.

А вообще, приведенный код безумен, мало того, что на русском, так ещё и switch в тучу строк с пачкой просто пустых цифирек.


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

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