我有一个 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 低和高原则,它会在应用程序进入前台时绕过我的所有代码
最佳答案
我有同样的问题,我基本上添加了
if ( stage ) stage.quality = stage.quality
在 onActivate 处理程序中。
在这里工作。
关于android - Adobe Air 应用程序 - 从背景黑屏返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39993824/