labjsで画面上で複数回のクリックの反応時間を取得する
学生からの相談で調べた際のメモ。結果に配列形式で保存できる。
code: JavaScript
const numFinish = 4; // 試行終了までのクリック回数を指定
let numClick = 0;
let durationLastClick = 0;
let durations = [];
this.options.events'click' = (e) => { numClick = numClick + 1;
// 最後のクリック(初回は試行開始)から現在のクリックまでの時間
let durationCurrent = e.timeStamp - (this.internals.timestamps.show + durationLastClick)
// 試行開始から最後のクリックまでの時間
durationLastClick = durationLastClick + durationCurrent;
// 結果を格納
durations.push(durationCurrent);
this.parameters.numClick = numClick;
if(numClick > numFinish - 1){
this.data.responseTime = durations;
this.end();
}
}
キー押しの場合は以下のようにすればできる。
code: JavaScript
const numFinish = 4; // 試行終了までのキー押し回数を指定
let numKeydown = 0;
let durationLastKeydown = 0;
let durations = [];
if (e.key == "Enter") {
numKeydown = numKeydown + 1;
// 最後のキー押し(初回は試行開始)から現在のキー押しまでの時間
let durationCurrent = e.timeStamp - (this.internals.timestamps.show + durationLastKeydown);
// 試行開始から最後のキー押しまでの時間
durationLastKeydown = durationLastKeydown + durationCurrent;
// 結果を格納
durations.push(durationCurrent);
this.parameters.numKeydown = numKeydown;
if(numKeydown > numFinish - 1){
this.data.responseTime = durations;
this.end();
}
}
}
作成するのに小林先生の以下のページを参考にした。