我正在優化遊戲,以便在有來電時或因任何其他原因移動到背景時,應該停止音樂,定時器和正確暫停。將應用程序移動到背景時音樂不會停止
除了因爲某種原因音樂不會停止播放,即使我發出命令讓它停止以外,它的功能也很棒。更奇怪的是,當遊戲返回到前臺時,有2個背景音樂正在播放,而不是一個。
這裏是我的我的一些代碼,沒有什麼太複雜或不尋常的:
...
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模擬器上測試這個,因爲我沒有必要的證書來直接在iphone上測試它。所以也許這是模擬器本身的問題,而不是代碼。
在此先感謝
編輯:我與Flash和Adobe AIR的
這看起來像我的Objective-C。我正在用Flash和Adobe Air編寫遊戲。你能向我解釋這可能會如何幫助我嗎? =) – r3x 2012-04-21 11:58:43