我有一个adobe air应用程序,适用于Android和iOS,最新的air sdk和所有的flash CS6。我已经实现了以下代码,每当用户使用以下方法将应用程序放在后台时暂停游戏:
naApplication = NativeApplication.nativeApplication;
naApplication.addEventListener(Event.ACTIVATE, eActivate);
naApplication.addEventListener(Event.DEACTIVATE, eDeactivate);
naApplication.addEventListener(Event.EXITING, eExiting);
然后 :
private function eActivate(e: Event):void
{
// app has opened or resumed
trace("state eActivate");
naApplication.removeEventListener(Event.ACTIVATE, eActivate);
naApplication.systemIdleMode = SystemIdleMode.KEEP_AWAKE;
}
private function eDeactivate(e: Event):void
{
// app is going to be moved to background
// --- Pause Game Code ---
//
naApplication.removeEventListener(Event.DEACTIVATE, eDeactivate);
naApplication.systemIdleMode = SystemIdleMode.NORMAL;
}
private function eExiting(e: Event):void
{
trace("state eExiting");
// app is going to be closed by user or by the OS (usually to free up memory)
// do whatever exit code here then remove all listeners (to be clean don't rely on OS to close them)
naApplication.removeEventListener(Event.ACTIVATE, eActivate);
naApplication.removeEventListener(Event.DEACTIVATE, eDeactivate);
naApplication.removeEventListener(Event.EXITING, eExiting);
naApplication.systemIdleMode = SystemIdleMode.NORMAL;
// removeEventListener(Event.ENTER_FRAME, eMainTimer);
}
这段代码完全适用于iOs,没有错误,但问题实际上是在Android上。每当用户将应用程序放在后台并返回时,首先他将被黑屏欢迎,他必须触摸任何地方以移除黑屏,并查看恢复屏幕。 所以问题是: - android用户将应用程序放在后台 - 它正确停顿 - 每当他回到游戏中时,都会出现黑屏,如果他触摸屏幕上的任何地方,黑色将会消失,恢复屏幕将会出现。 我怎么能删除这个黑屏!?
编辑:
每当用户进入后台时,应用程序会自动调用暂停功能并暂停游戏,如果我使用StageQuality低和高原则,它会在应用程序转到forground时绕过我的所有代码
我有同样的问题,我基本上补充说
if ( stage ) stage.quality = stage.quality
在onActivate处理程序中。
在这里工作。