6

単純なキーボード イベント キャプチャを実行するいくつかのテスト アプリケーションを作成しています。

この基本的なアプローチに問題はありません。

しかし、アプリケーションのエクスペリエンスを向上させる必要があり、少なくとも 2 つ以上の USB または PS/2 キーボードを接続して、どのキーボードがキー イベントのソースであるかを識別し、JavaScript を使用して Web ブラウザーをローカルで使用できるようにしたいと考えています。 (および HTML5)、あたかも複数のプレーヤー用の複数のコントローラーを同時に備えたゲーム コンソールであるかのように。

Windows や Linux でも、複数のキーボードで同じイベントを発生させるのが通常の動作であることはわかっています。ただし、どの特定のキーボード ハードウェア デバイスがそのイベントを発生させたかを完全に知ることができることも知っています。

それは可能ですか、それとも JavaScript の制限ですか? 将来的には、同じ基本タイプの複数の入力デバイスの区別をサポートするためにサポートされる予定です。少なくとも HTML5 を使用する代替手段はありますか。それとも、Web ブラウザー、JavaScript のコンテキストで話すことは、ほとんど失われた希望になるのでしょうか。とHTML5?

4

1 に答える 1

3

いいえ、現在のブラウザ環境では、特定のタイプの複数の異なる入力デバイスをサポートできません。また、このようなことを可能にする今後の仕様についても認識していません。一般に、ブラウザには一度に 1 人のユーザーしかいないと想定されています。このようなものはサポートされないと思います。

とはいえ、現在開発中のゲームパッド対応の仕様があります。ブラウザの非開発ビルドではまだサポートされていませんが、Firefox と Chrome の両方がそれに取り組んでいます。このテクノロジーに興味がある場合は、gamepad.jsという興味深いライブラリが既に存在します。

今のところ、複数のプレーヤーをサポートするには、ほとんどのゲームが複数のキーボード ベースのプレーヤーをサポートするために行うことと同じように、各プレーヤーを異なるキーのクラスターにマップする必要があります。

2015-05-04 更新

この回答以降、Gamepad API のサポートが改善されました。現在、Firefox と Chrome の両方がいくつかのバージョンをサポートしており、Opera もサポートしています。しかし、すべてのブラウザがそうしているわけではなく、Safari と IE はそうではありません。Microsoft の新しいブラウザ Edge は、Gamepad API をサポートするように見えますが、ほとんどの IE ユーザーが Edge または別のブラウザに移行するには、おそらく長い時間がかかるでしょう.

于 2013-02-19T22:04:57.980 に答える