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