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); // длительность будет 500Members
(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}.