Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.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
Actionscript 3 在Actionscript 3中将键代码转换为字符串_Actionscript 3_Flash_Actionscript_Air_Keyboard - Fatal编程技术网

Actionscript 3 在Actionscript 3中将键代码转换为字符串

Actionscript 3 在Actionscript 3中将键代码转换为字符串,actionscript-3,flash,actionscript,air,keyboard,Actionscript 3,Flash,Actionscript,Air,Keyboard,我在FlashCS6中使用ActionScript3,在桌面运行时使用AdobeAir3.4 我将某些键代码定义为整数值(下面的示例返回38表示UP,返回68表示D) 但是,我需要向用户显示键到键(显然不能显示整数值) 如何将这些键盘值转换为字符串值,如“Up”或“D”(而不是38和68)?您可以使用DescripteType获取属性名称,并以字符串形式访问属性,如键盘[“Up”] 所以,您可以创建表。比如说 import flash.utils.describeType; function

我在FlashCS6中使用ActionScript3,在桌面运行时使用AdobeAir3.4

我将某些键代码定义为整数值(下面的示例返回38表示UP,返回68表示D)

但是,我需要向用户显示键到键(显然不能显示整数值)


如何将这些键盘值转换为字符串值,如“Up”或“D”(而不是38和68)?

您可以使用
DescripteType
获取属性名称,并以字符串形式访问属性,如
键盘[“Up”]

所以,您可以创建表。比如说

import flash.utils.describeType;

function getKeyboardDict():Dictionary {
    var keyDescription:XML = describeType(Keyboard);
    var keyNames:XMLList = keyDescription..constant.@name;

    var keyboardDict:Dictionary = new Dictionary();

    var len:int = keyNames.length();
    for(var i:int = 0; i < len; i++) {
        keyboardDict[Keyboard[keyNames[i]]] = keyNames[i];
    }

    return keyboardDict;
}

var keyDict:Dictionary = getKeyboardDict();

trace(keyDict[Keyboard.UP]); //UP
trace(keyDict[Keyboard.SHIFT]); //SHIFT
import flash.utils.descripeType;
函数getKeyboardDict():字典{
var keyDescription:XML=descripbetype(键盘);
var keyNames:XMLList=keyDescription..constant.@name;
var keyboardDict:Dictionary=newdictionary();
var len:int=keyNames.length();
对于(变量i:int=0;i
如果您将OpenFL与Haxe一起使用,您可以进入
OpenFL/ui
中的
Keyboard.hx
,并在文本编辑器(如Vim或Gedit)中对文件内容使用regexp来生成键码到字符串字典

使用此选项创建开关:

:%s/\([A-Z_0-9]*\)\ =\ \([0-9]*\)/case \2\: return "\1"/g

尝试:
trace(String.fromCharCode(Keyboard.D))
,但在
UP
的情况下,它是无用的,非常有用,谢谢。但是,我能做些什么来获取诸如
UP
SHIFT
之类的键呢?太棒了。我被这个密码迷住了。谢谢你!我知道那是5年前的事了,但现在仍然如此。
:%s/\([A-Z_0-9]*\)\ =\ \([0-9]*\)/case \2\: return "\1"/g