在AS3遊戲中(使用Flex 4.10.0),我希望允許玩家聊天,即使他們是in fullscreen mode。FULL_SCREEN_INTERACTIVE模式:「允許」按鈕點擊傳遞給應用程序
所以我用以下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" />
這個作品在這個意義上,成功地進入全屏模式,用戶可以使用鍵盤也聊天。
不幸的是,在對話框中的「允許」按鈕(顯示「Allow full screen with keyboard controls?」)的點擊被傳遞給Web應用程序。
在我的情況下,它的點擊播放表大堂resuls,你可以在截圖中看到,因此(無用)加入遊戲:(?BUG)
這已被視爲Windows 7/64位和Flash Player 11,8800,115。
任何人都可以分享一個很好的解決方法嗎?
我正在考慮在我的web應用程序上添加一個透明的Sprite
或UIComponent
,但問題是何時(即在哪些方法中)顯示/隱藏它?
UPDATE:
調用從handleFullScreen()
event.stopPropagation()
沒有什麼幫助。
更新2:
我Adobe公司提交Bug #3623333。
UPDATE 3:對自己說明 - stage.allowsFullScreenInteractive
是無用的,因爲只有在全屏模式下才能設置。
我看到的唯一解決方案是放置一個透明圖層(精靈,圖像,無論)停止點擊。使用'FullScreenEvent'添加或刪除它。 – Pier
因此,在'toggleFullScreen()'中創建一個「圖層」,並在'handleFullScreen()'中刪除它? –
是的,類似的東西。 – Pier