在 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 中已经看到了这个(错误?)。
有人可以为此分享一个好的解决方法吗?
我正在考虑在我的 Web 应用程序上方添加一个透明Sprite
或UIComponent
上方,但问题是何时(即以何种方法)显示/隐藏它?
更新:
调用event.stopPropagation()
fromhandleFullScreen()
没有任何帮助。
更新 2:
我已经在 Adobe 提交了Bug #3623333。
更新 3:给自己的便条 -stage.allowsFullScreenInteractive
没用,因为只有在全屏模式下才设置。