Actionscript 3 在Actionscript 3中将键代码转换为字符串
我在FlashCS6中使用ActionScript3,在桌面运行时使用AdobeAir3.4 我将某些键代码定义为整数值(下面的示例返回38表示UP,返回68表示D) 但是,我需要向用户显示键到键(显然不能显示整数值)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
如何将这些键盘值转换为字符串值,如“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