0

我想使用 Actionscript实现检查时间任务。这个想法是根据用户的反应动态地改变蒙面和未蒙面图像之间的时间间隔。“检查时间”定义为用户达到一定精度的时间间隔。有多种因素会影响该间隔的准确性:监视器刷新率、flash vm 帧率、计时器事件准确性、渲染时间。还要别的吗?如何确定用户看到的实际反转?需要高精度,因为该任务的典型性能为 20 到 80 毫秒。我假设限制因素是显示器刷新率。如果是 60Hz,我只能增加 16.7 毫秒。有什么办法绕过这个限制吗?如果我使用更高的帧速率,播放器是否仍会将其同步到 60Hz?

4

1 回答 1

2

Flash 播放器可达到的帧速率有一个上限。虽然从技术上讲,您可以将值设置为高于 60fps,但我不相信如果用户安装了现代版本的 Flash Player,屏幕刷新速度不会比这更快。此外,您设置的帧速率并不重要,因为它建议玩家应该尽最大努力以该速率刷新......如果可能的话,它会这样做!但是,有许多因素可能使玩家无法真正跟上该帧速率。

  1. 具有许多不同电影剪辑的复杂场景,多重嵌套。

  2. 过度使用口罩

  3. 反复应用过滤器

  4. 在 ENTER_FRAME 或 TIMER 事件处理程序(或其中许多)中实现的特别复杂或低效的代码

  5. 复杂的对象图

  6. 浪费地实例化和处理对象,从而强制进行垃圾收集(这会在非常高的帧速率下导致明显的打嗝)。

    还应该注意的是,即使在最好的情况下,您也不能真正依赖更新之间的增量时间,无论是 ENTER_FRAME 还是 TIMER 都是 100% 一致的。

希望这会有所帮助。

于 2011-03-07T00:48:28.587 回答