在Event.DEACTIVATE上不显示子项

时间:2013-08-04 17:06:20

标签: actionscript-3 flash addchild

我希望在我的游戏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();
                }
            }

1 个答案:

答案 0 :(得分:1)

设置阶段的帧速率后调用e.updateAfterEvent()。这会强制对舞台进行一次重绘,之后舞台的帧速率设置为0,并且在您恢复帧速率之前,舞台不再重绘。

更新:显然这是Flash Player 11.3中的一个错误(可能更多的是FP11),FP10没有这个错误,所以当我使用调试器FP10时,教程中的“裸”方法对我有用。使用FlashDevelop,但是当我在安装了FP11.3的FF中尝试使用它时,它没有工作。因此,解决方法如下:在代码中添加虚假Sprite对象,不要将其添加到任何位置,它将作为自定义MouseEvent事件的收件人,仅用于调用{{1 }}。这有助于我显示一个表示暂停状态的自定义DisplayObject。

updateAfterEvent()