2


1

私はキーボードイベントリスナーを持っています、そして私はナンバーロックがあるときのために 番号パッドキーコード(1から9)を聞いています有効化されました。これはうまくいきます。 ただし、私のアプリでは、数字パッドキーと共に修飾キー(CTRL)の使用も許可したいです。 奇妙なことに、Ctrlキーを押しながら1または3を押してもキーボードイベントはまったく生成されませんが、2と4 - 9は期待されるイベントを生成します。

*私はいくつかのGooglingの後にこの問題への他の言及を見たので、私はこれが必ずしもFlash特有であるとは思わないが、私はまだ何も答えを見つけていない。

私は修飾子としてSHIFTを使用しようとしました、しかしそれはちょうどあたかもナンバーロックがオフであるかのようにテンキーからキーコードを生成するという結果になります(例えば、SHIFT Numpad1はナンバーロック状態に関係なくEndキーコードを返します) - どうやらこれは意図的なWindowsの動作です。 altcodesのため、ALTはテンキーのオプションではありません。

CTRL Numpad1とCTRL Numpad3でキーボードイベントを生成する方法について何かアイデアはありますか? それともなぜそうではないのか、という説明はありますか。

*編集:*以下に示すようにFirefoxでこれらのキーの組み合わせを試してみましたが、すべてのキーの組み合わせはA-OKで動作しています。

4 Answer


0


私は過去に、特定のキーボードのテンキーキーに関する問題に遭遇しました。 さまざまなキーの組み合わせが特定のキーボードに登録されず、使用しているキーボードがその場合にイベントをまったく生成していない可能性があります。 動作は保証されていませんが、別のキーボード(別のベンダなど)を試してみてそれが機能するかどうかを確認することをお勧めします。 英語以外のキーボードを使用している場合は、ローカライズされたキーボードの問題でもあるかもしれません。


0


ローカライズされたキーボードにも同様の問題があり、特定のキーまたはキーの組み合わせに対してイベントをまったく生成できないため、Flashに関連していないことはほぼ間違いありません。

すべての重要なイベントを列挙し、それらがマップされているもの、またはGoogleのevtest.cを検索し、それをコンパイルして実行し、その内容を確認してください。


0


確かにそれはそのキーボード特有のように見えます。 Firefoxでこの質問を読んだときにキーの組み合わせを試しましたが、Ctrlキーを押したときと同じイベントが発生しました(タブ番号#に切り替えられます)。

これは、標準のUS / 101キーの英語キーボードを使用していました(追加のメディアボタンなどはありません)。


0


一部のキーボードは特定のキーの組み合わせを登録しません。 これはそれらがどのように組み合わされるかにかかっていると思います。 たとえば、左側のCtrlキーの組み合わせを登録しても右側のCtrlキーの組み合わせは登録しない場合があります。

この問題を回避するには、Ctrlキーのキーダウンイベントとキーアップイベントを検出します。

その後、Ctrlテンキーキーのカスタムイベントを発生させるか、揮発性フラグを使用してCtrlキーの状態を表示することができます。