最小化时,flash客户端会冻结

问题描述

| 我们正在使用动作脚本3构建多人Flash游戏。该游戏应该可以实时运行。 我们有一个问题,如果您最小化游戏客户端,它会冻结-我可以通过预览最小化窗口来查看此情况,我本来应该在房间里走过的角色已经冻结。这会导致出现实时问题,因为玩家客户端最小化时发生的任何事情都将丢失。 有谁知道为什么Flash客户端在最小化时会停止/冻结,以及是否有防止这种情况的方法?     

解决方法

您所看到的行为是10.1版中添加的几个功能,它们可以改善电池寿命并提高移动设备的性能。有关完整的详细信息,请参阅此文档。需要了解的主要变化是,当SWF完全不在屏幕上时(由于滚动或制表),其帧速率将降至2 fps。 AFAIK无法禁用此功能。 (我不认为应该有..) 对于如何处理它,只要您不对帧速率作任何隐式假设,许多处理都应正常工作。内容仍将获得通常会发生的所有相同事件(套接字和计时器等),尽管它处理某些事件的频率比正常情况下要低。因此,总的来说,只要您知道如何安排工作时间并进行相应的计划,就有可能(而且有必要)制作在所有情况下均有效的内容。 例如,如果角色在屏幕上行走,并且用户将浏览器最小化了一会儿,那么当浏览器再次最大化时,角色是否应该到达目的地?在单人游戏中,也许他不应该这样做,但在多人游戏中(角色的位置可能旨在表示服务器端数据),他应该这样做。在前一种情况下,最好使用会在最小化时减慢速度的帧动画,但是在后一种情况下,您几乎可以肯定需要时间驱动的脚本补间动画-理想情况下,您希望使用脚本来设置角色的知道他何时开始走路以及应该何时到达的位置,但不在乎他在旅途中被重画了多少次。 您绝对不希望做的是运行一个计时器或一个每秒触发30次的时间间隔,并在该事件中更新您的内容。这只会浪费大量的CPU,因为您要进行大量的更新,任何人都不会看到。     ,可能会有这种现象,因为在某些特定情况下,当播放器不可见时,Flash会停止视觉计算。 可能您有一个代码需要计算纹理,在应用程序整个运行过程中进行定位,并尝试还原窗口后-太多了要计算的内容,这需要花费一些时间如果未最小化,则应该是这样(一些线性代码)。 也许解决方案是在最小化视觉部分的同时停止计算。 不太确定,但我认为仍然无法使用Flash Player在后台模式下运行。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...