====== @amperka/animation ====== Анимации — это объекты, которые полезны для плавного изменения числовых параметров во времени. Например, чтобы медленно изменять угол поворота сервопривода или яркость светодиодной подсветки. Объект-анимация включает в себя последовательность переходов (transitions), каждый из которых задаёт начальную величину, конечную и длительность преобразования. Набор переходов определяется пользователем библиотеки с помощью метода ''[[#queue|queue]]''. Пока осуществляется переход, анимация периодически генерирует событие ''[[#update|update]]'', на которое нужно подписаться, чтобы применять вычисленное промежуточное значение к конечному объекту анимации. var myAnim = require('@amperka/animation').create({ from: 30, // анимация от 30 to: 120, // до 120 duration: 4, // продолжительностью 4 секунды updateInterval: 0.02 // с обновлением каждые 20 мс }).queue({ to: 90, // а сразу после этого от 120 до 90 duration: 1 // продолжительностью 1 секунду }); myAnim.on('update', function(val) { // Заставляем по мере обновления анимации поворачиваться сервопривод //myServo.write(val); }); myAnim.play(); ===== Функции модуля ===== func:: create(transition) Создаёт и возвращает новый объект-анимацию с единственным переходом, заданным ''transition''. В качестве ''transition'' принимается объект с полями: * ''from'' — стартовое значение перехода (0, если не задано); * ''to'' — конечное значение перехода (1, если не задано); * ''duration'' — длительность перехода в секундах (1, если не задано); * ''updateInterval'' — период возникновения события ''[[#update|update]]'' в секундах (0.01, если не задано); * ''loop'' — должен ли переход автоматически начинаться сначала, когда завершён (''false'', если не задано). После создания анимация не запускается автоматически. Используйте ''[[#animationplay|play]]'', чтобы начать проигрывание. class:: Animation Класс объекта-анимации. Используйте ''[[#create|create]]'', чтобы создать новый экземпляр. meth:: Animation.queue(transition) Добавляет новый переход ''transition'' в конец очереди переходов. Ожидает объект ''transition'' подобный тому, что используется в ''[[#create|create]]''. Если какие-то поля не заданы, их значение берётся из последнего перехода в очереди. meth:: Animation.play() Запускает анимацию. Не имеет эффекта, если анимация уже запущена. meth:: Animation.stop([skip]) Останавливает анимацию. Переводит текущее состояние (курсор) в нулевой момент первого перехода. В качестве аргумента ''skip'' принимается ''true'' или ''false''. Значение этого аргумента определяет, должно ли возникнуть событие ''[[#update|update]]'' с конечным значением анимации после остановки (''true'', если не задано). meth:: Animation.reverse() Переворачивает последовательность переходов и направление проигрыша. event:: Animation.on('update', callback) Возникает раз в ''updateInterval'' текущего перехода. Функция ''callback'' вызывается с единственным параметром: текущим промежуточным значением анимации.