Как создать флэш-программу с одинаковой производительностью на нескольких компьютерах? - PullRequest
1 голос
/ 17 июня 2011

Я хочу создать флеш-программу, которая отслеживает биометрические показатели мыши и клавиатуры, такие как скорость перемещения мыши, частота щелчков, длина нажатий клавиш и т. Д.Как я могу гарантировать, что если пользователь будет дублировать свои действия на нескольких компьютерах с различной частотой процессора, я буду записывать одни и те же данные?

Ответы [ 2 ]

2 голосов
/ 17 июня 2011

Вы можете подписать все свои данные с помощью числа, заданного getTimer() - это будет означать, что ваши данные помечены временем с миллисекундами с момента запуска приложения - независимо от скорости процессора и т. Д.

Пример:

public class DocClass extends Sprite
{
    // vars
    private var _log:Array = [];

    /**
     * Constructor
     */
    public function DocClass()
    {
        stage.addEventListener(MouseEvent.CLICK, _click);
    }

    /**
     * MouseEvent.CLICK
     */
    private function _click(e:MouseEvent):void
    {
>>      _log[_log.length] = {time:getTimer(), data:"CLICK"};
    }

    /**
     * Output the log
     */
    public function outputLog():void
    {
        var i:Object;
        for each(i in _log)
        {
            trace(i.time + ": " + i.data);
        }
    }
}
0 голосов
/ 17 июня 2011

Установите frameRate вашего SWF на что-то большое, например, 60 кадров в секунду (AFAIK, большее число не даст ускорения) и сохраняйте простые графические эффекты и вычисления кода.Таким образом, вы получите высокую частоту кадров.Вам это нужно, потому что ваш код пробуждается только между кадрами, отображаемыми проигрывателем, а большой fps увеличивает разрешение по времени.
Затем измерьте данные, используя реальное время, заданное getTimer.Если ваше приложение сможет работать со скоростью 60 кадров в секунду, один кадр будет длиться 1000/60 = 16,666 миллисекунд, поэтому вы можете надеяться, что ваши данные будут такими точными.
(@ Marty Wallace: getTimer () возвращает int, а не номер)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...