我希望在我的游戏http://www.emanueleferonato.com/2011/03/29/pausing-a-flash-game-or-movie-detecting-its-focus/
中实现这一目标一切正常(游戏暂停)但屏幕没有“绘制”,但如果我将鼠标移到swf上,屏幕就会出现
private function onDeactivate(e:Event):void {
pauseGame=true;
addChild(FocusScreen);
if(musicOn==true){
musicCh.stop();
}
stage.frameRate = 0;
}
UPDATE:仅当我将stage framerate设置为0时才会出现这种情况 这有效,但我需要设置帧速率0
private function onDeactivate(e:Event):void {
pauseGame=true;
addChild(FocusScreen);
if(musicOn==true){
musicCh.stop();
}
}
答案 0 :(得分:1)
设置阶段的帧速率后调用e.updateAfterEvent()
。这会强制对舞台进行一次重绘,之后舞台的帧速率设置为0,并且在您恢复帧速率之前,舞台不再重绘。
更新:显然这是Flash Player 11.3中的一个错误(可能更多的是FP11),FP10没有这个错误,所以当我使用调试器FP10时,教程中的“裸”方法对我有用。使用FlashDevelop,但是当我在安装了FP11.3的FF中尝试使用它时,它没有工作。因此,解决方法如下:在代码中添加虚假Sprite
对象,不要将其添加到任何位置,它将作为自定义MouseEvent
事件的收件人,仅用于调用{{1 }}。这有助于我显示一个表示暂停状态的自定义DisplayObject。
updateAfterEvent()