閃光:ブラウザの別のタブから戻ってきたときに、Flash は何らかのタブ イベントに戻るためにリッスンできますか?
-
02-07-2019 - |
質問
ビデオを見ながらリンクをクリックできる Flash アプリケーションを入手しました。新しいタブが開き、ビデオが一時停止されます。Flash アプリケーションに戻ったときに、ビデオの再生が再び開始されると便利です。これを行う方法やイベントなどはありますか?
解決 4
次のように解決したと思います:
別のタブにいるときにマウスがステージから離れるため、ステージ上でmouse_leaveイベントをリッスンします。(少なくとも、フラッシュに戻るにはタブをクリックする必要があるため、常にフラッシュの外に出てしまいます)。ステージを離れると、stageLeave ブール値が true に設定されます。
次に、別のイベント リスナー、mouse_move を用意します。これは、stageLeave ブール値を false (true の場合) に設定し、カスタム STAGE_RETURN イベントを送出します。
ここでの唯一の補足は、ビデオを再度再生するには、ステージ上でマウスを移動する必要があるということです。しかし、それはとにかくやることです。
他のヒント
よりクリーンなアプローチは、次のようなものを使用することです。
stage.addEventListener( Event.ACTIVATE, playMovie );
stage.addEventListener( Event.DEACTIVATE, pauseMovie );
Flash はおそらく使用できませんが、純粋な JavaScript を使えば、Flash ムービーと通信できるかもしれません。Windows の onFocus イベントを試してみることをお勧めします。
これまでに使用したことがないため、一部またはすべてのブラウザでトリガーされない可能性があります。
これ FF3で活躍してました。これは有効なコードでも良いコードでもありませんが、足がかりにはなります。
<html>
<head></head>
<body onFocus="alert('testing');"></body>
</html>
また、[OK] [OK] をクリックするとアラートが表示され、フォーカスが再度トリガーされるため、非常に面倒です。Ctrl+W を押すとタブが閉じられ、サイクルを終了できます。
Flash プレーヤーは、フォーカスがプレーヤーに出入りするときに、アクティブ化イベントと非アクティブ化イベントを送信します。おそらくこれらを使用することもできますが、ページのフォーカスが変更されたときではなく、Flash コンテンツのフォーカスが変更されたときのみに制限されます。
ここを見てください blog.flexaxamples.com Flash イベントをアクティブ化および非アクティブ化するための使用方法を確認します。