![]() |
|
||||||||||
|
|||||
|
Регистрация: Jun 2006
Сообщений: 60
|
Здравствуйте!
Банальный вопрос, как перевести код клавиши в символ или набор символов? Неужели в самом деле описывать вручную? Добродарю.
__________________
kto™ |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
String.fromCharCode, Key.getAscii
|
|
|||||
|
Регистрация: Jun 2006
Сообщений: 60
|
String.fromCharCode Преобразует код символа в строку. А мне нужено код клавиши преобразовать в символ ASCII
например клавиша "Left" Key.getCode()=37 String.fromCharCode(37)=% Ну и остальные функциональные клавиши
__________________
kto™ Последний раз редактировалось iNils; 17.10.2008 в 19:39. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Не понимаю. Символ — не строка?
Или вам ещё нужны имена всех остальных клавиш? Если да, то в хелпе есть таблица, сделайте класс с соответствиями (благо, не так уж и много) и вуаля. |
|
|||||
|
Регистрация: Jun 2006
Сообщений: 60
|
хорошо, сделаю. Спасибо за совет.
Домашнее задание выполнил. Если кому пригодится //Клавесин.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 Клавесин(){
}
}
key_code_from_ascii.rar ![]()
__________________
kto™ Последний раз редактировалось iNils; 18.10.2008 в 01:06. |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Лучше вместо case здесь использовать массив, в котором индексы элементов будут соответствовать кодам клавиш, а значения -- именам клавиш. Т.е. кодом клавиши "выбиваешь" из массива имя. Меньше вычислений будет.
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Цитата:
А вообще, приведенный код безумен, мало того, что на русском, так ещё и switch в тучу строк с пачкой просто пустых цифирек. |
![]() |
![]() |
Часовой пояс GMT +4, время: 09:27. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|