Как определить фактический временной интервал, который пользователь видит между двумя последовательными изображениями - PullRequest
0 голосов
/ 07 марта 2011

Я хотел бы реализовать задачу время проверки , используя Actionscript. Идея состоит в том, чтобы динамически изменять временной интервал между замаскированными и немаскированными изображениями на основе ответов пользователей. «Время проверки» определяется как интервал, с которым пользователь достигает определенной точности. На точность этого интервала влияют различные факторы: частота обновления монитора, частота кадров flash vm, точность события таймера, время рендеринга. Что-нибудь еще? Как определить фактический инверс, который видит пользователь? Требуется высокая точность, поскольку типичная производительность для этой задачи составляет от 20 до 80 мс. Я предполагаю, что ограничивающим фактором является частота обновления монитора. Если это 60 Гц, я смогу увеличить только на 16,7 мс. Есть ли способ обойти это ограничение? Если я использую более высокую частоту кадров, будет ли проигрыватель синхронизировать ее до 60 Гц?

1 Ответ

2 голосов
/ 07 марта 2011

Существует верхний предел частоты кадров, достижимый Flash-плеером. Хотя технически вы можете установить значение выше, чем 60fps, я не верю, что экран будет обновляться быстрее, чем это, если у пользователя установлена ​​современная версия Flash Player. Кроме того, на самом деле не имеет значения, какую частоту кадров вы устанавливаете, поскольку это предложение, чтобы игрок сделал все возможное, чтобы обновить его с такой скоростью ... и он сделает это, если это вообще возможно! Тем не менее, существует ряд факторов, которые могут сделать невозможным для игрока фактически поддерживать эту частоту кадров.

  1. Сложная сцена с множеством разных видеоклипов, несколько вложенных.
  2. Злоупотребление масками
  3. Повторное применение фильтров
  4. Особенно сложный или неэффективный код, реализованный в обработчике событий ENTER_FRAME или TIMER (или многих из них)
  5. График сложного объекта
  6. Неоправданное создание экземпляров и удаление объектов, что приводит к принудительному сбору мусора (это вызывает заметный сбой при очень высокой частоте кадров).

    Следует также отметить, что вы не можете по-настоящему полагаться на то, что время обновления между обновлениями, ENTER_FRAME или TIMER, не будет на 100% согласованным даже в лучших обстоятельствах.

Надеюсь, это поможет.

...