Все функции анимации выполняются практически мгновенно.Поскольку библиотека jsanim не имеет функциональных возможностей очереди, единственная анимация, которую вы увидите в этом случае, - последняя (потому что каждый раз, когда выполняется следующая анимация, последняя прерывается).
Но она делаетиметь обработчик обратного вызова onComplete
, поэтому очередь достаточно проста для реализации.Вам нужен массив очереди, видимый всем функциям:
var animationQueue = [];
Затем измените цикл for, чтобы добавить функции в очередь вместо их выполнения:
for( var i=1; i<6; i++) {
if (i%2==1) //if i is odd number
animationQueue .push(animation1);
else //else i is even number
animationQueue .push(animation2);
}
nextAnimation();
Также обратите внимание, чтоЯ использовал i%2==1
.Я предполагаю, что вы хотите нечетные числа здесь, когда вы говорите if(i==1 || i==3)
.Функция nextAnimation () может выглядеть примерно так:
function nextAnimation() {
if(animationQueue.length)
animationQueue.shift()();
}
И, наконец, вам нужно добавить опцию onComplete
при вызове анимации:
anim.add({
property: Prop.position,
to: new Pos(l+100,r+400),
duration: 1000,
ease:jsAnimEase.parabolicNeg,
onComplete: nextAnimation
});
Надеюсьвыводит вас на правильный путь!