Здравствуйте, разбираюсь тут со сложной анимацией и возникли некоторые вопросы.
Хочу сделать сложную анимацию движения автобуса с поворотами. изменением масштаба и т.д.
Саму анимацию движения реализовываю через .animate().
Для наклонов и изменения масштаба автобуса использую сторонний плагин для jQuery
вот такой
Учитывая что анимация состоит из множества небольших отрезков движения, нужно как-то управлять очередью анимации, для этого решил использовать $.deferred.
Если пишу что-то типа такого:
var bus = $('.bus');
var a1 = bus.animate({'right':'50px','top':'120px'}, 1500);
var a2 = bus.animate({'right':'150px','top':'135px'}, 1500);
$.when(a1, a2).done(function () {
$('.bus').animate({'right':'200px','top':'150px'}, 1500);
});
то все отлично, порядок эффектов ожидаемый. сначала срабатывает первая анимация, потом вторая и по завершению этих событий идет последняя анимация.
Но если если пытаюсь использовать эффекты .rotate() или .scale() то они живут своей жизнью. Где бы я их не вызывал они срабатывают сразу не дожидаясь очереди.
Получается что deferred может работать только с родными методами jquery? А как можно его заставить работать с методами подключенного плагина?