我想測量reaction time of a user。在這個例子中,我使用動作腳本,但這個概念真的很重要,所以如果你想顯示任何代碼,可以隨意用你選擇的語言來回答。毫秒精度的ActionScript新日期()或getTimer()
用戶坐在屏幕前,會出現紅點。當他們看到紅點時,他們撞上了空格鍵。
我的邏輯如下:使紅點可見,創建新日期,等待空格鍵,創建新日期,使用TimeSpan對象查找以毫秒爲單位的差異。
//listen for the keystroke
this.systemManager.stage.addEventListener(KeyboardEvent.KEY_DOWN, catchSpace, true, 1);
...
if (e.keyCode == Keyboard.SPACE) {
e.preventDefault();
this.dispatchEvent(new PvtEvent(PvtEvent.BTN_CLICK));
}
//show the red dot, making note of the time
redDot.visible = true;
this.startCount=new Date();
//user clicks the space bar
this.endCount=new Date();
var timeSpan:Number=TimeSpan.fromDates(this.startCount, this.endCount).totalMilliseconds;
我覺得這樣可以工作,但我得到一些令人不安的值。下面是一個典型的結果集:
[254, 294, 296, 305, 306, 307, 308, 309, 310, 308, 312, 308, 338, 346, 364, 370, 380, 387, 395, 402, 427]
請注意,其中一些值是接近的,而308則記錄了多次。所以,我的問題如下:
- 是我的代碼,或我使用的邏輯,以某種方式存在缺陷?
- 用戶能夠產生重複次數的概率是多少?
- 如果概率很低,那麼我在這裏錯過了什麼?
我還應該注意到我(意外地)收到了12ms的響應時間。我正在測試應用程序,恰好在紅點出現時撞上了空格鍵。所以,我懷疑我的代碼無法判斷準確的時間,至少精確到±12ms :)。