Actionscript 3 是否有一种内置的暂停AIR桌面应用程序的方法?
我有一个空中桌面游戏,有背景音乐,在主菜单中重复动画。是否有一种内在的可能性告诉AIR container,当窗口失去焦点时(例如,通过alt+tab或按下windows键),AIR container会暂停其容器的内容(暂停音乐和动画/帧处理程序等)Actionscript 3 是否有一种内置的暂停AIR桌面应用程序的方法?,actionscript-3,air,desktop-application,suspend,Actionscript 3,Air,Desktop Application,Suspend,我有一个空中桌面游戏,有背景音乐,在主菜单中重复动画。是否有一种内在的可能性告诉AIR container,当窗口失去焦点时(例如,通过alt+tab或按下windows键),AIR container会暂停其容器的内容(暂停音乐和动画/帧处理程序等) 还是只有一个接一个地停止所有内容,当再次聚焦时,才有可能一个接一个地开始所有事情?@JoshJanusch说的是真的——你必须自己管理它,尽管设置stage.frameRate可能对你有所帮助 我见过的大多数激活/停用管理器都会执行以下操作:
还是只有一个接一个地停止所有内容,当再次聚焦时,才有可能一个接一个地开始所有事情?@JoshJanusch说的是真的——你必须自己管理它,尽管设置
stage.frameRate
可能对你有所帮助
我见过的大多数激活/停用管理器都会执行以下操作:
- 将
设置为0.01(减慢动画速度和stage.frameRate
事件侦听器,特别是在移动设备上节省CPU/电池)ENTER_FRAME
- 停止声音(如果您通过一些
类播放所有声音,这可能很简单)SoundManager
- 管理
或setInterval
的使用,因为它们是持续触发的计时器setTimeout
- 考虑挂起任何其他异步活动(如网络请求或后台工作人员)
您可以在评论中对此列表提出建议。后者。你必须监听
事件。激活和事件。在舞台上或本地应用程序上停用,然后逐个停止所有操作,然后重新启动。真的吗?!空气容器中不应该有这样的功能吗?无论如何,谢谢你的帮助。Adobe不会自动处理任何事情。Flash/AIR并不是一个简单的SDK,它包含了很多帮助程序和所有东西。这意味着它是一种让开发人员能够绝对控制的语言。想想看,他们会怎么暂停呢?有人多久会想要一个没有声音或任何东西的绝对静态屏幕?对用户来说,应用程序看起来是冻结的(从技术上讲,它是冻结的)。另外,它不会与系统交互正确交互(即在OSX中滚动非活动窗口),实际上会与大多数设计范例相违背。哦,这很方便,非常感谢。是否有理由将帧速率设置为0.01?这是最低的有效值per=)这是一个很好的答案,尽管将帧速率设置为0.01仍会导致动画移动(例如,每秒移动1个像素的动画将每100秒移动1个像素)。你可能会想处理这件事。如果这是一个游戏,你应该有一个暂停菜单,你可以在事件触发时使用。DEACTIVATE
触发。右-游戏框架应该有一个暂停机制(或尊重自动停用事件,如),最好使用支持暂停的框架(声音、动画、计时器等)。帧率技巧可能会使不使用这些的项目受益。