jsPsych/jspsych-animation.js

51 lines
1.1 KiB
JavaScript

// jsPsych plugin for showing animations
// Josh de Leeuw
function animation_create(params)
{
stims = params["stimuli"];
trials = new Array(stims.length);
for(var i = 0; i < trials.length; i++)
{
trials[i] = {};
trials[i]["type"] = "animate";
trials[i]["stims"] = stims[i];
trials[i]["frame_time"] = params["frame_time"];
trials[i]["repetitions"] = params["repetitions"];
trials[i]["timing"] = params["timing"];
}
return trials;
}
function animation_trial($this, block, trial, part)
{
animate_frame = -1;
reps = 0;
switch(part)
{
case 1:
animate_interval = setInterval(function(){
showImage = true;
$('.animate').remove();
animate_frame++;
if(animate_frame == trial.stims.length)
{
animate_frame = 0;
reps++;
if(reps >= trial.repetitions)
{
animation_trial($this, block, trial, part + 1);
clearInterval(animate_interval);
showImage = false;
}
}
if(showImage){
$.fn.jsPsych.showImage($this, trial.stims[animate_frame], 'animate');
}
}, trial.frame_time);
break;
case 2:
setTimeout(function(b){ b.next(); }, trial.timing[0], block);
break;
}
}