Показать сообщение отдельно
  #1 (permalink)  
Старый 14.08.2013, 14:11
Интересующийся
Отправить личное сообщение для weber Посмотреть профиль Найти все сообщения от weber
 
Регистрация: 08.04.2013
Сообщений: 16

использование $.deferred со сторонними плагинами jQuery
Здравствуйте, разбираюсь тут со сложной анимацией и возникли некоторые вопросы.

Хочу сделать сложную анимацию движения автобуса с поворотами. изменением масштаба и т.д.
Саму анимацию движения реализовываю через .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? А как можно его заставить работать с методами подключенного плагина?
Ответить с цитированием