In an AS3 game (using Flex 4.10.0) I would like to allow players to chat, even when they are in fullscreen mode.
So I am using the following ActionScript code (the _fullBox
checkbox triggers fullscreen mode in my web application):
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" />
This works in the sense that the fullscreen mode is entered successfully and users can use the keyboard to chat too.
Unfortunately, the click at the "Allow" button in the dialog (displaying "Allow full screen with keyboard controls?") is being passed down to the web application.
And in my case it resuls in the click at a playing table in the lobby as you can see in the screenshot and thus (unwanted) joining a game:
This (bug?) has been seen with Windows 7 / 64 bit and Flash Player 11,8,800,115.
Can anybody please share a good workaround for this?
I was thinking of adding a transparent Sprite
or UIComponent
above my web application, but the question is when (i.e. in which methods) to display/hide it?
UPDATE:
Calling event.stopPropagation()
from handleFullScreen()
doesn't help anything.
UPDATE 2:
I've submitted Bug #3623333 at Adobe.
UPDATE 3: A note to myself - stage.allowsFullScreenInteractive
is useless, because only set when allready in fullscreen mode.