Javascript 从字符串中获取键码?
使用as3中的静态方法,我可以从字符串中的一个字符获取一个字符串Javascript 从字符串中获取键码?,javascript,flash,actionscript-3,actionscript,keycode,Javascript,Flash,Actionscript 3,Actionscript,Keycode,使用as3中的静态方法,我可以从字符串中的一个字符获取一个字符串 如何从字符串中的字符获取密钥码?我是否需要通过javascript运行此函数(如果我可以在javascript中运行此函数…为什么要从字符串中获取密钥码?为什么不直接从网络上获取呢 下面是文档中示例代码的精简版本,演示了如何从KeyboardEvent处理和检索keycode: package { import flash.display.Sprite; import flash.display.DisplayOb
如何从字符串中的字符获取密钥码?我是否需要通过javascript运行此函数(如果我可以在javascript中运行此函数…为什么要从字符串中获取密钥码?为什么不直接从网络上获取呢 下面是文档中示例代码的精简版本,演示了如何从
KeyboardEvent
处理和检索keycode:
package {
import flash.display.Sprite;
import flash.display.DisplayObject;
import flash.events.*;
public class KeyboardEventExample extends Sprite {
private var child:Sprite = new Sprite();
private var bgColor:uint = 0x00CCFF;
private var size:uint = 80;
public function KeyboardEventExample() {
child.graphics.beginFill(bgColor);
child.graphics.drawRect(0, 0, size, size);
child.graphics.endFill();
addChild(child);
child.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
child.addEventListener(KeyboardEvent.KEY_UP, keyUpHandler);
}
private function keyDownHandler(event:KeyboardEvent):void {
trace("keyDownHandler: " + event.keyCode);
}
private function keyUpHandler(event:KeyboardEvent):void {
trace("keyUpHandler: " + event.keyCode);
}
}
}
如果您确实有一个需要读取的字符串,并且键盘不是一个选项(正如Soviut所建议的),那么您需要确保字符串以某种方式进行分隔,最有可能是使用逗号分隔,因为每个键码的字符数不同,一些键码是字符串,而其他键码是uint 以下是所有键码常量的列表: 复制并粘贴为“KeyCodeUtil.as”,将其放在以下文件夹下:net/onthewings/utils
/*
KeyCodeUtil.as
Andy Li (andy@onthewings.net)
2009-11-02
*/
package net.onthewings.utils {
import flash.ui.Keyboard;
public class KeyCodeUtil {
/*
The below codes is used for generating KEYCODES. Some formating is needed to be done by hand after getting the outputStr.
var outputStr:String = "";
function onPress(evt:KeyboardEvent):void {
outputStr += "'" + evt.charCode + "':" + evt.keyCode + ", //"+String.fromCharCode(evt.charCode)+"\n";
}
*/
static public const KEYCODES:Object = {
27: 27, //esc
96: 192, //`
49: 49, //1
50: 50, //2
51: 51, //3
52: 52, //4
53: 53, //5
54: 54, //6
55: 55, //7
56: 56, //8
57: 57, //9
48: 48, //0
45: 189, //-
61: 187, //=
8: 8, //backspace
9: 9, //tab
113: 81, //q
119: 87, //w
101: 69, //e
114: 82, //r
116: 84, //t
121: 89, //y
117: 85, //u
105: 73, //i
111: 79, //o
112: 80, //p
91: 219, //[
93: 221, //]
92: 220, //\
97: 65, //a
115: 83, //s
100: 68, //d
102: 70, //f
103: 71, //g
104: 72, //h
106: 74, //j
107: 75, //k
108: 76, //l
59: 186, //;
39: 222, //'
13: 13, //enter
122: 90, //z
120: 88, //x
99: 67, //c
118: 86, //v
98: 66, //b
110: 78, //n
109: 77, //m
44: 188, //,
46: 190, //.
47: 191, ///
32: 32, //space
127: 46, //delete
126: 192, //~
33: 49, //!
64: 50, //@
35: 51, //#
36: 52, //$
37: 53, //%
94: 54, //^
38: 55, //&
42: 56, //*
40: 57, //(
41: 48, //)
95: 189, //_
43: 187, //+
81: 81, //Q
87: 87, //W
69: 69, //E
82: 82, //R
84: 84, //T
89: 89, //Y
85: 85, //U
73: 73, //I
79: 79, //O
80: 80, //P
123: 219, //{
125: 221, //}
124: 220, //|
65: 65, //A
83: 83, //S
68: 68, //D
70: 70, //F
71: 71, //G
72: 72, //H
74: 74, //J
75: 75, //K
76: 76, //L
58: 186, //:
34: 222, //"
90: 90, //Z
88: 88, //X
67: 67, //C
86: 86, //V
66: 66, //B
78: 78, //N
77: 77, //M
60: 188, //<
62: 190, //>
63: 191 //?
}
/**
* @param char Can be String or charCode(Number).
* @param numpad If set to true, the function will return the keyCode for numpad. Ignored if numpad have no such key.
*/
static public function keyCodeOf(char:*, numpad:Boolean = false):Number {
var charCode:Number;
if (char is String)
charCode = (char as String).charCodeAt();
else
charCode = char;
if (numpad){
if (charCode >= 48 && charCode <= 57){ //0-9
return charCode + 48;
} else if (charCode == 43){
return Keyboard.NUMPAD_ADD;
} else if (charCode == 46){
return Keyboard.NUMPAD_DECIMAL;
} else if (charCode == 47){
return Keyboard.NUMPAD_DIVIDE;
} else if (charCode == 13){
return Keyboard.NUMPAD_ENTER;
} else if (charCode == 42){
return Keyboard.NUMPAD_MULTIPLY;
} else if (charCode == 45){
return Keyboard.NUMPAD_SUBTRACT;
}
}
return KEYCODES[charCode] ? KEYCODES[charCode] : -1;
}
}
}
/*
KeyCodeUtil.as
李国忠(andy@onthewings.net)
2009-11-02
*/
包net.onthewings.utils{
导入flash.ui.Keyboard;
公共类KeyCodeUtil{
/*
以下代码用于生成密钥代码。在获得outputStr后,需要手动进行一些格式化。
var outputStr:String=“”;
功能onPress(evt:KeyboardEvent):无效{
outputStr+=“'”+evt.charCode+”:“+evt.keyCode+”,/“+String.fromCharCode(evt.charCode)+”\n”;
}
*/
静态公用常量键代码:对象={
27:27,//esc
96: 192, //`
49: 49, //1
50: 50, //2
51: 51, //3
52: 52, //4
53: 53, //5
54: 54, //6
55: 55, //7
56: 56, //8
57: 57, //9
48: 48, //0
45: 189, //-
61: 187, //=
8:8,//退格
9:9,//选项卡
113:81//q
119:87,//w
101:69,//e
114:82,//r
116:84,//t
121:89,//y
117:85,//u
105:73//i
111:79//o
112:80//p
91: 219, //[
93: 221, //]
92: 220, //\
97:65//a
115:83,//s
100:68,//d
102:70//f
103:71,//g
104:72,//h
106:74,//j
107:75,//k
108:76,//l
59: 186, //;
39: 222, //'
13:13,//输入
122:90,//z
120:88,//x
99:67,//c
118:86//v
98:66,//b
110:78,//n
109:77,//m
44: 188, //,
46: 190, //.
47: 191, ///
32:32,//空格
127:46,//删除
126: 192, //~
33: 49, //!
64: 50, //@
35: 51, //#
36: 52, //$
37: 53, //%
94: 54, //^
38: 55, //&
42: 56, //*
40: 57, //(
41: 48, //)
95: 189, //_
43: 187, //+
81:81,//Q
87:87,//W
69:69,//E
82:82,//R
84:84,//T
89:89,//Y
85:85,//U
73:73//I
79:79//O
80:80,//P
123: 219, //{
125: 221, //}
124: 220, //|
65:65,//A
83:83,//S
68:68,//D
70:70//F
71:71,//G
72:72,//H
74:74,//J
75:75,//K
76:76,//L
58: 186, //:
34: 222, //"
90:90,//Z
88:88,//X
67:67,//C
86:86,//V
66:66,//B
78:78,//N
77:77,//M
60: 188, //<
62: 190, //>
63: 191 //?
}
/**
*@param char可以是字符串或charCode(数字)。
*@param numpad如果设置为true,函数将返回numpad的keyCode。如果numpad没有这样的键,则忽略。
*/
静态公共函数keyCodeOf(char:*,numpad:Boolean=false):Number{
var字符码:数字;
if(char是字符串)
charCode=(char作为字符串).charCodeAt();
其他的
charCode=char;
如果(numpad){
如果(charCode>=48&&charCode在AdobeAIR中使用此选项:
var str:String = "a"; //only one letter at a time
var keyCode:uint = Keyboard[str.toUpperCase()];
trace(keyCode);
我想我应该包括一个更简单的方法:
var str:String = "B";
trace(str.charCodeAt(0)); // replace 0 with the index of the char you want the code of
这将返回charCode,而不是keyCode