Sequencer

new Sequencer(onComplete, inDebugMode)

Менеджер очередей анимаций.
Позволяет выполнять действия с задержкой и управлять очередью изнутри выполняемых действий.
Добавление действия (queueUp) возвращает объект с функцией then, которая позволяет добавлять следующее действие и т.д.
Добавленные таким образом действия считаются одной очередью. Вызов queueUp снова создаст новую очередь.
Из добавляемых действий можно добавлять дополнительные действия (вложенность неограничена) при помощи функции append, передаваемой в действия вместе с еще несколькими. append также возвращает then.
Вызов append создает новую очередь, которая будет выполнена сразу после очереди, из действия которой был вызван append.
Помимо append передаются следующие действия:
abort() - прерывает текущую очередь и все вложенные в нее очереди
skip(num) - будет пропущено num следующих действий в текущей очереди

Source:
Parameters:
Name Type Description
onComplete function
inDebugMode boolean
Examples
// Функции выполнятся в порядке нумерации с интервалом в 500мс

var sequence = new Sequencer();

function action0(){};
function action1(seq){
	seq.append(action3)
};
function action2(){};
function action3(){};
function action4(){};

sequence.queueUp(action0, 500)
	.then(action1, 500)
	.then(action2, 500);
	
sequence.queueUp(action4, 500);
// Способы указания длительности действия

// Аргумент
sequence.queueUp(action0, 500);

// Возвращается из действия
function action1(){
	return 500;
} 
sequence.queueUp(action1);

// Вместо действия
sequence.queueUp(500);

// Если указать аргументом и возвратить из функции
// будет использован аргумент
function action2(){
	return 1000;
}
sequence.queueUp(action2, 500); // длительность будет 500

Members

(private) _isSync :Boolean

Если true очередь выполнится линейно (без setTimeout).

Source:

(private) _nestedQueue :Array

Еще не добавленные в массив очередей вложенные очереди.

Source:

(private) _queue :Array

Все очереди.

Source:

(private) _skips :Number

Кол-во шагов, которые будут пропущены в текущей очереди.

Source:

(private) _wasAborted :Boolean

Была ли прервана очередь.

Source:

inDebugMode :Boolean

Будут ли выводиться сообщения о выполняемых действиях в консоль.

Source:

onComplete :function

Метод, выполняемый по завершению всех очередей.

Source:

Methods

(private) _abort(queue)

Прерывает указанную очередь изнутри действия.

Source:
Parameters:
Name Type Description
queue object

очередь, которую нужно прервать

(private) _addQueue(queueHolder, action, duration, context) → {object}

Добавляет новую очередь с новым действием в очередь.

Source:
Parameters:
Name Type Description
queueHolder object

очередь, в которую будет добавлена новая очередь

action function

действие

duration number

длительность действия

context object

контекст действия

Returns:
Type:
object

Объект для добавления действий {then}.

(private) _addStep(queue, action, duration, context) → {object}

Добавляет новое действие в очередь.

Source:
Parameters:
Name Type Description
queue object

очеред, в которую будет добавлено действие

action function

действие

duration number

длительность действия

context object

контекст действия

Returns:
Type:
object

Объект для добавления действий {then}.

(private) _appendNestedQueue()

Добавляет вложенную очередь в начало последовательности.

Source:

(private) _executeAction(step, queue) → {number}

Выполняет действие, если оно есть.

Source:
Parameters:
Name Type Description
step object

шаг, к которому пренадледит действие

queue array

очередь, к которой пренадлежит шаг

Returns:
Type:
number

длительность действия

(private) _getMethods(queue)

Возвращает методы, которые можно вызывать из действий для управления очередью.

Source:
Parameters:
Name Type Description
queue array

очередь, которую можно завершить

(private) _go()

Запускает выполнение действий.

Source:

(private) _log()

Выводит аргументы в лог, если менеджер находится в режиме дебага.

Source:

(private) _next() → {boolean}

Выполняет текущее действие в очереди и запускает таймаут следующего.

Source:
Returns:
Type:
boolean

Возвращает нужно ли запустить функцию снова.

(private) _reset()

Ресетит очередь.

Source:

(private) _resetFull()

Ресетит очередь, включая статус завершения. Выполняет onComplete менеджера, если не был установлен флаг пропуска onComplete. Убирает флаг пропуска onComplete.

Source:

(private) _resetTimeout()

Ресетит таймаут.

Source:

(private) _skip(num)

Пропускает указанное кол-во шагов текущей очереди.

Source:
Parameters:
Name Type Description
num number

кол-во пропускаемых шагов

abort(disableOnCompleteopt)

Прерывает все очереди.

Source:
Parameters:
Name Type Attributes Description
disableOnComplete boolean <optional>

onComplete метод не будет выполнен

finish(disableOnCompleteopt)

Завершает все очереди синхронно.

Source:
Parameters:
Name Type Attributes Description
disableOnComplete boolean <optional>

onComplete метод не будет выполнен

queueUp(action, duration, context) → {object}

Создает новую очередь с действием, добавляет ее после всех очередей. Запускает очередь, если она была пустой.

Source:
Parameters:
Name Type Description
action function

Действие. При выполнении в него передадутся два параметра:
seq - набор методов для управлением очередью (append, abort, skip)
sync - выполняется ли очередь в реальном времени (на очереди был вызван метод finish)

duration number

Длительность действия. Может быть передана вместо действия или быть возвращена действием.

context object

контекст действия

Returns:
Type:
object

Объект для добавления действий {then}.