2

私はキーボード イベント リスナーを持っており、ナンバー ロックがアクティブになったときにテンキーのキー コード(1 ~ 9) をリッスンしています。これはうまくいきます。ただし、私のアプリでは、テンキー キーと一緒に修飾キー (CTRL) も使用できるようにしたいと考えています。奇妙なことに、CTRL を押したまま 1 または 3 を押してもキーボード イベントはまったく生成されませんが、2 および 4 ~ 9 を押すと予期されるイベントが生成されます。 グーグルで調べた後、この問題に関する他の参照を見たので、これが必ずしも Flash 固有のものであるとは思いませんが、まだ答えを見つけていません。

修飾子として SHIFT を使用してみましたが、数値ロックがオフであるかのようにテンキーからキーコードを生成するだけです (たとえば、SHIFT + Numpad1 は、数値ロックの状態に関係なく、End キーコードを返します) - どうやらこれは意図的な Windows です。行動。altcodesのため、ALT はテンキーのオプションではありません。

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

編集: enriquein が以下に提案するように、Firefox でこれらのキーの組み合わせを使用してみましたが、すべてのキーの組み合わせが問題なく動作するため、これは Flash 固有の問題である可能性が高いか、少なくともハードウェアの問題ではないと考えられます。

4

4 に答える 4

0

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

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

次に、Ctrl +テンキーのカスタムイベントを発生させるか、揮発性フラグを操作してCtrlキーの状態を表示できます。

于 2009-05-13T07:39:41.300 に答える
0

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

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

于 2009-05-02T15:15:38.513 に答える
0

確かに、キーボード固有のように見えます。Firefox でこの質問を読んだときにキーの組み合わせを試してみたところ、Ctrl+Number (タブ #Number への切り替え) を押すのと同じイベントがトリガーされました。

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

于 2009-05-08T16:10:51.320 に答える