AS3 ゲーム (Flex 4.10.0 を使用) で、プレイヤーがフルスクリーン モードであってもチャットできるようにしたいと考えています。
そこで、次の ActionScript コードを使用しています (_fullBox
チェックボックスは、Web アプリケーションでフルスクリーン モードをトリガーします)。
public function init():void {
if (stage.allowsFullScreenInteractive)
stage.addEventListener(FullScreenEvent.FULL_SCREEN, handleFullScreen, false, 0, true);
}
private function toggleFullScreen(event:MouseEvent):void {
stage.displayState =
stage.displayState == StageDisplayState.NORMAL ?
StageDisplayState.FULL_SCREEN_INTERACTIVE :
StageDisplayState.NORMAL;
}
private function handleFullScreen(event:FullScreenEvent):void {
_fullBox.selected = event.fullScreen;
}
<s:CheckBox id="_fullBox" click="toggleFullScreen(event)" label="Full Screen" />
これは、フルスクリーン モードが正常に開始され、ユーザーがキーボードを使用してチャットできるという意味で機能します。
残念ながら、ダイアログの [許可] ボタン ([キーボード コントロールで全画面表示を許可しますか?] が表示されます) のクリックは、Web アプリケーションに渡されます。
そして、私の場合、スクリーンショットでわかるように、ロビーのプレイテーブルをクリックして、(望ましくない) ゲームに参加することになります:
この (バグ?) は、Windows 7 / 64 ビットおよび Flash Player 11,8,800,115 で見られます。
誰かがこれに対する良い回避策を共有できますか?
透明Sprite
またはUIComponent
上に Web アプリケーションを追加することを考えていましたが、問題はいつ (つまり、どのメソッドで) 表示/非表示にするかです。
アップデート:
event.stopPropagation()
から電話しhandleFullScreen()
ても何の役にも立ちません。
更新 2:
Adobe にBug #3623333を提出しました。
更新 3:自分へのメモ -stage.allowsFullScreenInteractive
フルスクリーン モードで既に設定されている場合にのみ設定されるため、役に立ちません。