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) _skips :Number
Кол-во шагов, которые будут пропущены в текущей очереди.
- Source:
inDebugMode :Boolean
Будут ли выводиться сообщения о выполняемых действиях в консоль.
- Source:
onComplete :function
Метод, выполняемый по завершению всех очередей.
- Source:
Methods
_abort
_addQueue
_addStep
_appendNestedQueue
_executeAction
_getMethods
_go
_log
_next
_reset
_resetFull
_resetTimeout
_skip
abort
finish
queueUp
(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) _log()
Выводит аргументы в лог, если менеджер находится в режиме дебага.
- Source:
(private) _next() → {boolean}
Выполняет текущее действие в очереди и запускает таймаут следующего.
- Source:
Returns:
- Type:
-
boolean
Возвращает нужно ли запустить функцию снова.
(private) _resetFull()
Ресетит очередь, включая статус завершения.
Выполняет onComplete
менеджера, если не был установлен флаг пропуска onComplete
.
Убирает флаг пропуска onComplete
.
- Source:
(private) _skip(num)
Пропускает указанное кол-во шагов текущей очереди.
- Source:
Parameters:
Name | Type | Description |
---|---|---|
num |
number
|
кол-во пропускаемых шагов |
abort(disableOnCompleteopt)
Прерывает все очереди.
- Source:
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
disableOnComplete |
boolean
|
<optional> |
|
finish(disableOnCompleteopt)
Завершает все очереди синхронно.
- Source:
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
disableOnComplete |
boolean
|
<optional> |
|
queueUp(action, duration, context) → {object}
Создает новую очередь с действием, добавляет ее после всех очередей. Запускает очередь, если она была пустой.
- Source:
Parameters:
Name | Type | Description |
---|---|---|
action |
function
|
Действие. При выполнении в него передадутся два параметра: |
duration |
number
|
Длительность действия. Может быть передана вместо действия или быть возвращена действием. |
context |
object
|
контекст действия |
Returns:
- Type:
-
object
Объект для добавления действий {then}
.