我想处理用户为游戏键入的字符(我不想使用带有提交按钮的输入标记)。
我设法使用此代码输入keyCode:
window.on.keyPress.add((Event e)
{
window.alert('${e.keyCode},${e.keyIdentifier},${e.charCode}');
});
但我不知道如何显示按下的键的字符(或者甚至将键的字符作为字符串)。 在javascript中有一个fromKeyCode()函数但不在Dart中。
无论如何,我正在寻找最简单的方法来获取键盘输入进行处理,我宁愿不必使用键盘代码等等。
答案 0 :(得分:3)
String.fromCharCodes()
消失了
import 'dart:convert';
String result = UTF8.decode([e.charCode]); // or [e.keyCode]
答案 1 :(得分:2)
您可以使用String.fromCharCodes()从字符代码构造一个新字符串。
var str = new String.fromCharCodes([e.charCode]);
然而,每次用户根据您的游戏击中键时创建新字符串肯定不是最有效的。如果您只希望点击一些特定字符并忽略其他字符,那么您可能需要创建字符代码的常量/最终变量来比较事件中的字符代码。
final E_KEY = "e".charCodeAt(0);
// ... etc.
请记住,这些不会考虑各种情况,例如大小写,或按下CTRL或ALT或元键等。
答案 2 :(得分:2)
String.fromCharCodes似乎可以使用最新的Dart SDK。
刚刚用v1.9.1_r44672确认:
String result = new String.fromCharCodes([event.charCode]);
如果只需要将一个字符转换为相应的字符串表示,则可以使用String.fromCharCode (singular)代替。