2009-04-29 5 views
2

私はキーボードイベントリスナーを持っています。数字ロックが有効になっているときはnumber pad key codes(1〜9)を聞いています。これはうまく動作します。しかし、私のアプリケーションでは、数字キーと一緒に修飾キー(CTRL)を使用できるようにしたいと考えています。奇妙なことは、Ctrlキーを押しながら1または3を押してもキーボードイベントは発生しませんが、2と4 - 9は予想されるイベントを生成するということです。 私はいくつかのグーグルの後にこの問題の他の参照を見たので、これは必ずしもフラッシュ固有であるとは思わないが、私はまだ答えを見つける必要があります。修飾キー付きナンプラを使用すると、好奇心を催します

Shiftキーをモディファイアとして使用しましたが、数値ロックがオフの場合と同じようにキーパッドからキーコードを生成します(たとえば、Shift + Numpad1が数値ロック状態に関係なくEndキーコードを返します)。明らかにこれは意図的なWindowsの動作です。 altcodesのために、Altキーは数字キーパッドのオプションではありません。

キーボードイベントを生成するためにCTRL + Numpad1とCTRL + Numpad3を得る方法に関するアイデアはありますか?なぜ彼らはしないのですか?

編集: enriqueinは以下示唆し、すべてのキーの組み合わせは、これはおそらくフラッシュ固有の問題であると信じて私をリードし、-OKの仕事、または少なくともないように私はFirefoxでこれらのキーの組み合わせを使用して試してみましたハードウェアの問題。

+0

ここで死んだ人から復活する、他の誰かがここで遭遇した場合に備えて。私はブラウザー(特にFlashとSilverlight)で動作し、Internet Explorerで動作しているプラ​​グインについても同様の問題を抱えています。基本的に、IEがウェブページやプラグインよりも短くなっているショートカット。 IEはキーボードイベントを呑み込み、ページ内で実行されているプラ​​グインには送信しません。 Internet ExplorerがCTRL + 1〜3(CTRL + 4〜9ではなく)のショートカットを持っていたため、あなたの特定の問題が発生する可能性があります。 IE以外のブラウザでも同じ問題はありませんでした。 –

答えて

0

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

0

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

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

+0

これはWindows上で、evtest.cはUnix専用のようです。 –

+0

うん、Unix特有のコード、そうだよ、ごめんなさい。 ほんのわずかのテストを実行するために、ライブのLinuxディストリビューションを起動するとよいでしょう。 – Vuk

0

実際、キーボード固有のようです。 Firefoxでこの質問を読んで、Ctrl +数字(タブ#Numberに切り替わります)を押すと同じイベントが発生しました。

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

+0

Firefoxの動作がわかりませんでした。ちょうど試しましたが、CTRL + Numpad1とNumpad3はうまく動作します。おそらく、これはフラッシュ固有の問題です... –

0

一部のキーボードでは特定のキーの組み合わせが登録されません。私はこれがどのように組み合わされているかにまで及ぶと思う。例えば、いくつかは左手を登録することができますCtrl +キーの組み合わせではなく右Ctrl +同じキー!

回避策は、Ctrlキーのキーダウンイベントとキーアップイベントを検出することです。

Ctrl + Numpadキーのカスタムイベントを発生させたり、揮発性フラグを使用してCtrlキーの状態を表示したりできます。

関連する問題