3

ゲーム用にユーザーが入力した文字を処理したい (submit ボタンで input タグを使用したくない)。

このコードで入力された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]);

1 文字だけを対応する String 表現に変換する必要がある場合は、代わりにString.fromCharCode (単数)を使用できます。

于 2015-04-16T01:29:46.637 に答える