基本的にブラックボックスである埋め込みビデオプレーヤーを含む、Actionscript 3とMXMLで実装されているFlex 3アプリケーションで作業しています。 SWFは必要に応じて別のサイトからダウンロードできますが、そのソースコードにアクセスすることはできません。ただし、Spriteを継承しています。Flex 3:キーボードイベントがスプライトに到達しないようにする
問題は、Flashアプリケーションにフォーカスがあると、ビデオプレーヤーが何らかの形でキーボードイベントを受信して処理していることです。プレーヤー自体にフォーカスがない場合でも問題です。だから、ユーザーがGUIのどこか別の場所にテキストを入力しているときに、スペースバーにヒットした場合、ビデオは一時停止します。
私はスプライトの親でキーイベントをインターセプトし、スプライトでtabEnabled = false、tabChildren = false、およびbuttonMode = falseを設定しようとしましたが、何も動作していないようです。スプライトが別のイベントパスを介してキーストロークを取得しているかのようです。
キーボードイベントを受け取ったり、イベントを完全に入力しないようにするには、どのようなアイディアがありますか?入力イベントがプレーヤーに届かない場合は、私自身で別々のビデオコントロールを実装しているので、私には問題ありません。
*「Spriteの親のキーイベントを傍受しようとしました」とは、[useCapture](http://help.adobe.com/jp/FlashPlatform/reference/actionscript/3/flash/)のイベントリスナーを意味しますか? events/EventDispatcher.html#addEventListener())がtrueに設定されていますか? – merv
暗闇の中で撮影し、それを解決しない可能性がありますが、少なくとも試してみるべきもう一つのことは、 'yourPlayer.focusRect = false;' – ToddBFisher
@ wvxvwのコメントに関しては、入力ボックスにkeyUpのリスナーを追加し、event.stopImmediatePropagation()を呼び出してイベントがステージまでバブリングするのを止めます(これは明らかに理想的ではありませんが、動作する可能性があります)。また、最大優先度のkeyUpのステージ上にリスナーを設定してみると、プレーヤーによって登録されたものより前に呼び出され、同じ停止伝播メソッドに従うことをお勧めします。 – shaunhusain