在 AS3 游戏(使用 Flex 4.10.0)中,我希望允许玩家聊天,即使他们在在全屏模式下.
所以我使用以下 ActionScript 代码(_fullBox
复选框会在我的网络应用程序中触发全屏模式):
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
or UIComponent
在我的网络应用程序之上,但问题是何时(即以哪种方法)显示/隐藏它?
UPDATE:
Calling event.stopPropagation()
from handleFullScreen()
没有任何帮助。
更新2:
我已提交错误#3623333在 Adobe。
更新3:给自己的一封信——stage.allowsFullScreenInteractive
没用,因为只有在全屏模式下才设置。