gpt4 book ai didi

iphone - 将应用程序移至后台时音乐不会停止

转载 作者:行者123 更新时间:2023-12-03 00:59:09 24 4
gpt4 key购买 nike

我正在优化游戏,以便当有来电或由于任何其他原因将其移至后台时,它应该停止音乐、计时器并正确暂停。

它的效果很好,除了由于某种原因音乐不会停止播放,即使我发出了停止的命令。更奇怪的是,当游戏回到前台时,播放的是 2 首背景音乐而不是 1 首。

这是我的一些代码,没有什么太复杂或与众不同的地方:

  ...

NativeApplication.nativeApplication.systemIdleMode = SystemIdleMode.KEEP_AWAKE;
NativeApplication.nativeApplication.addEventListener(Event.ACTIVATE, handleActivate);
NativeApplication.nativeApplication.addEventListener(Event.DEACTIVATE, handleDeactivate);
...
private function handleActivate(event:Event):void
{

stage.frameRate = previousFrameRate;

//if the music was on when the game is moved to the background, then replay it when its moved back to the foreground
if(musicOn)
{
BGMusic.play();
}


}

private function handleDeactivate(event:Event):void
{
BGMusic.stop();
stage.frameRate = 0;
}

值得注意的是,如果我在游戏返回前台时不重播音乐(即当我在 handleActivate 中不使用 BGMuusic.play() 时),则不会有任何音乐如预期的那样。只有当我停止音乐并稍后在移动到前台时恢复音乐时,背景音乐才不会停止并且我得到两个正在播放的轨道。

有任何想法吗?正如我所说,其他一切正常,游戏正确暂停。我正在 Flash builder Emulator 上对此进行测试,因为我没有必要的证书来直接在 iphone 上对其进行测试。所以也许这是模拟器本身而不是代码的问题。

提前致谢

编辑:我正在用 flash 和 adobe air 写这篇文章

最佳答案

好吧,那是我的愚蠢。一切正常我只是忘记在 if 语句中添加另一个条件。所以而不是:

            if(musicOn) 
{
BGMusic.play();
}

它应该是
            if(musicOn && !BGMusic.isPlaying())
{
BGMusic.play();
}

现在一切正常...我会将musicOn的变量名称更改为更清晰的名称,例如musicButtonOn。

无论如何感谢您的帮助。如果您有任何建议或意见,请随时告诉我 =D

关于iphone - 将应用程序移至后台时音乐不会停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10258523/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com