0


0

私はJavascriptを使用してキーボードイベントを傍受しようとしているので、 "ウィンドウを閉じる"ためにCMD-Wを実行することができますが、Flashアプリケーションの内部ではできません。

ALT、CTRL、CMDのonKeyDown / onKeyPressイベントをリッスンすることはできますが、それ以外のものをリッスンすることはできません…​ これがFlexプロジェクトのindex.htmlファイルのコードです。

</code> document.onkeydown = function(event){applicationKeyboardHandler(event)} document.onkeypress = function(event){applicationKeyboardHandler(event)} function applicationKeyboardHandler(event){alert( "Key Pressed")} <code>

alt / ctrl / cmdだけでなく、どんなキーを押しても聴けるようにしたいのですが。 何が足りないの?

3 Answer


2


Timのように、私はFlash / Flexが重要な出来事を飲み込んでいると思います。 Altなどはメタキーなので、Flexではkeypressイベントは発生せず、JSに渡されます。 一方、特定のジェスチャ(例: 一部のブラウザではCtrl + AキーがFlashに受信されるのを防ぐことができます。 私は、同じ理由(セキュリティ)のためにこれらがJSによって扱われるのを妨げられていると思います。 どのキージェスチャが保護されているかは、ブラウザに大きく依存します。

おそらくブラウザはあなたがCTRL-Qを扱うことを許可しないでしょう。その結果、たとえいくつかの悪意のあるサイトが開いていても、ユーザは彼のブラウザを_常に_閉じることができます。


1


Flashムービーが重要なイベントを処理し、それらがドキュメントツリーに伝播するのを防いでいると思います。 Flash自体のイベントを処理しないのはなぜですか。


1


あなたはFlashがそれをブロックしていないと確信していますか? Flashなしのページでコードを実行しようとしましたか?

_document_ではなく_window_にイベントを添付してみてください。