Я не уверен, что использовал правильную терминологию в вопросе, но я запускаю серию вызовов функций по времени, используя цикл в моей функции playSequence() и setTimeOutFunction. Это много работает, но затем я хочу иметь функцию паузы, которая будет приостанавливать все таймеры, и функцию возобновления, которая возобновит все таймеры. Проблема в том, что когда я пытаюсь вызвать метод паузы функционального объекта в функции pauseAllTimers(), он выдает ошибку «Uncaught TypeError: объект 0 не имеет метода паузы». Любые идеи?
var timers = new Array();
function Timer(callback, delay) {
var timerId, start, remaining = delay;
this.pause = function() {
window.clearTimeout(timerId);
remaining -= new Date() - start;
};
this.resume = function() {
start = new Date();
timerId = window.setTimeout(callback, remaining);
};
this.resume();
}
function pauseAllTimers()
{
for (var timer in timers)
{
timer.pause();
}
}
function resumeAllTimers()
{
for (var timer in timers)
{
timer.resume();
}
}
function playSequence()
{
var totaltimeout = 0;
for (var lesson_step_str in lesson_step)
{
var splitarr = lesson_step[lesson_step_str].split("|||");
var element = splitarr[0];
var txt = splitarr[1];
var timeout = splitarr[2];
totaltimeout += (timeout*1);
console.log(totaltimeout);
console.log(txt);
(function(a,b){
var timer = new Timer(function(){ displayText( a, b); }, totaltimeout * 1000);
timers.push(timer);
})(element, txt);
}
}