ゲームを最適化して、着信があった場合、またはその他の理由でバックグラウンドに移動した場合に、音楽、タイマーを停止し、正しく一時停止するようにしています。
停止するように命令しても、なんらかの理由で音楽の再生が止まらないという点を除けば、うまく機能します。さらに奇妙なのは、ゲームがフォアグラウンドに戻ると、1つではなく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()を使用しない場合)、期待どおりの音楽が得られないことに注意してください。バックグラウンドミュージックが停止せず、2つの再生トラックが表示されるのは、音楽を停止し、後でフォアグラウンドに移動したときに再開したときだけです。
何か案は?私が言ったように、他のすべてはうまく機能し、ゲームは正しく一時停止します。私はこれをFlashBuilderエミュレーターでテストしています。これは、iPhoneで直接テストするための証明書が必ずしも必要ではないためです。したがって、コードではなくエミュレータ自体に問題がある可能性があります。
前もって感謝します
編集:フラッシュとアドビエアでこれを書いています