Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在多台机器上创建性能一致的flash程序?_Flash_Actionscript 3_Actionscript_Biometrics - Fatal编程技术网

如何在多台机器上创建性能一致的flash程序?

如何在多台机器上创建性能一致的flash程序?,flash,actionscript-3,actionscript,biometrics,Flash,Actionscript 3,Actionscript,Biometrics,我想创建一个flash程序来跟踪鼠标和键盘的生物特征,比如鼠标移动速度、点击率、击键长度等等。我如何确保如果用户以不同的处理器速度在多台机器上重复他/她的操作,我将记录相同的数据?您可以使用以下数字对所有数据进行签名-这意味着您的数据将以自应用程序启动以来的毫秒数进行时间戳-无论处理器速度如何,等等 例如: public class DocClass extends Sprite { // vars private var _log:Array = []; /**

我想创建一个flash程序来跟踪鼠标和键盘的生物特征,比如鼠标移动速度、点击率、击键长度等等。我如何确保如果用户以不同的处理器速度在多台机器上重复他/她的操作,我将记录相同的数据?

您可以使用以下数字对所有数据进行签名-这意味着您的数据将以自应用程序启动以来的毫秒数进行时间戳-无论处理器速度如何,等等

例如:

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);
        }
    }
}

将SWF的帧速率设置为60 fps(当然,更大的数字不会带来加速),并保持图形效果和代码计算简单。这样您将获得高帧速率。您需要它,因为您的代码只在播放器渲染的帧之间唤醒,大fps将提高时间分辨率。
然后使用getTimer提供的实时数据测量数据。如果您的应用程序能够以60 fps的速度运行,则一帧将持续1000/60=16.666毫秒,因此您可以希望您的数据如此精确。

(@Marty Wallace:getTimer()返回int,而不是Number)

你不能,只能恶搞它。