如何在多台计算机上创建具有一致性能的闪存程序?

时间:2011-06-17 02:59:37

标签: flash actionscript-3 actionscript biometrics

我想创建一个跟踪鼠标和键盘生物识别的闪存程序,例如鼠标移动速度,点击率,按键长度等等。如果用户在具有不同处理器速度的多台计算机上复制他/她的操作,我将如何确保记录相同的数据?

2 个答案:

答案 0 :(得分:2)

您可以使用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);
        }
    }
}

答案 1 :(得分:0)

将SWF的frameRate设置为60 fps(AFAIK,更大的数字不会加速)并保持图形效果和代码计算简单。这样你就可以获得高帧率。你需要它,因为你的代码只在玩家渲染的帧之间唤醒,而大fps会增加时间分辨率 然后使用getTimer给出的实时测量数据。如果您的应用程序能够以60 fps运行,则一帧将持续1000/60 = 16.666毫秒,因此您可以希望您的数据准确无误。
(@ Marty Wallace:getTimer()返回int,而不是Number)