greensock TweenMax javascript - убить циклическую анимацию

Я создал циклическую анимацию с помощью Greensock javascript и зациклил ее с помощью функции, возможно, этой это не лучший способ зацикливания, если вы знаете лучший способ, пожалуйста, посоветуйте, но в основном, когда я пытаюсь убить анимацию с помощью этого метода, он не работает.

Мой код:

var dvdTween;
function playDVD()
{
 dvdTween = TweenMax.to($("#bigDVD"), 4, {css:{rotation:+1440, transformOrigin:"150px 150px"},ease:Expo.easeNone, delay:7, onComplete:playDVD});
}

/// Позже в функции, которую я вызываю

dvdTween.kill(); /// but this does nothing. 

Опять же, может быть лучший способ зациклить анимацию, и это может быть моей проблемой, но на данный момент эта анимация продолжает вызывать функцию после того, как я ее «убью».

Спасибо за ваши советы и помощь.


person Papa De Beau    schedule 03.12.2012    source источник


Ответы (1)


Ваш код действительно должен работать — мне бы хотелось увидеть пример набора файлов, который показывает, что он не работает. Интересно, вы столкнулись с проблемой области действия или чем-то еще - вы уверены, что "dvdTween" ссылается на анимацию движения в том контексте, в котором вы ее вызываете? Попробуйте добавить onCompleteScope:this в свою анимацию.

Еще два совета:

1) Вы можете бесконечно зацикливать TweenMax, установив repeat:-1, например:

TweenMax.to($("#bigDVD"), 4, {css:{rotation:1440}, repeat:-1}); 

2) Вы можете убить всех подростков определенного объекта, используя TweenMax.killTweensOf(), например:

TweenMax.killTweensOf($("#bigDVD"));
person Jack    schedule 04.12.2012
comment
Привет Джек! ха-ха :) Большое спасибо за потрясающий ответ. Я постараюсь быть кратким. Мой код работал, но он продолжал вызывать onComplete даже после того, как я убил анимацию. Я попробовал ваш метод, и он работает, но я не могу заставить анимацию задерживаться. Также, когда функции продолжают вызывать, он вызывает bigDVD, но это загруженный div. Если они переходят на новую страницу, div там нет, и это приводит к тому, что весь javascript перестает работать. Вот почему я пытался убить анимацию, но снова onComplete продолжал работать, таким образом снова перезапуская анимацию. Вы хотите, чтобы я опубликовал свой код? Это долго и грязно :( но работает :) - person Papa De Beau; 06.12.2012
comment
Да, я бы порекомендовал создать отдельный изолированный (упрощенный) файл примера, потому что часто это помогает определить проблему. Вы можете опубликовать свой файл на форумах GreenSock по адресу forums.greensock.com. - person Jack; 06.12.2012