DART - 获取用户键入的字符

时间:2012-10-19 08:25:44

标签: dom javascript-events user-input keyboard-events dart

我想处理用户为游戏键入的字符(我不想使用带有提交按钮的输入标记)。

我设法使用此代码输入keyCode:

window.on.keyPress.add((Event e) 
{
    window.alert('${e.keyCode},${e.keyIdentifier},${e.charCode}');

});

但我不知道如何显示按下的键的字符(或者甚至将键的字符作为字符串)。 在javascript中有一个fromKeyCode()函数但不在Dart中。

无论如何,我正在寻找最简单的方法来获取键盘输入进行处理,我宁愿不必使用键盘代码等等。

3 个答案:

答案 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)代替。