Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从字符串中获取键码?_Javascript_Flash_Actionscript 3_Actionscript_Keycode - Fatal编程技术网

Javascript 从字符串中获取键码?

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

使用as3中的静态方法,我可以从字符串中的一个字符获取一个字符串


如何从字符串中的字符获取密钥码?我是否需要通过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