3

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

我设法获得了使用此代码键入的 keyCode:

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

});

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

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

4

3 回答 3

3

String.fromCharCodes()离开了

import 'dart:convert';

String result = UTF8.decode([e.charCode]); // or [e.keyCode]
于 2014-02-27T10:12:23.377 回答
2

您可以使用String.fromCharCodes()从字符代码构造一个新字符串。

var str = new String.fromCharCodes([e.charCode]);

但是,根据您的游戏,每次用户点击一个键时创建一个新字符串肯定不是最有效的。如果您只希望命中几个特定字符而忽略其他字符,那么您可能需要创建字符代码的常量/最终变量来比较事件中的字符代码。

final E_KEY = "e".charCodeAt(0);
// ... etc.

请记住,这些不考虑各种情况,例如大写,或按下 CTRL 或 ALT 或元键等。

于 2012-10-19T14:42:31.760 回答
2

String.fromCharCodes似乎适用于最近的 Dart SDK。

刚刚用 v1.9.1_r44672 确认:

String result = new String.fromCharCodes([event.charCode]);

如果只需要将一个字符转换为对应的String表示,可以使用String.fromCharCode(单数)代替。

于 2015-04-16T01:29:46.637 回答