2015-05-19 3 views
2

Я попытался добавить свои собственные методы в класс Tween, чтобы приостановить/возобновить все твины. Это то, что у меня есть:createjs pause/resume all tweens

createjs.Tween.pauseAllTweens = function() 
{ 
    for (var i = 0, tweenObj; tweenObj = createjs.Tween._tweens[i++];) 
     tweenObj.setPaused(true); 
}; 

createjs.Tween.resumeAllTweens = function() 
{ 
    for (var i = 0, tweenObj; tweenObj = createjs.Tween._tweens[i++];) 
     tweenObj.setPaused(false); 
}; 

Но я не получаю ожидаемых результатов. Кто-нибудь подскажет мне, как приостановить все подростки, а затем возобновить их, не останавливая Тикера?

ответ

1

Установка приостановленной паузы приведет к удалению ее из массива _tweens. Вам лучше хранить твинов, которые вы создаете в своем собственном массиве, и приостанавливать/возобновлять их там.

Подход, который будет работать бы итерировать _tweens массив в обратном при остановке их, и сохранить анимацию временно, так что вы можете возобновить их позже.

1

Ах, да ... это помогло мне. Вот что я сделал:

var pausedTweenObjs = []; 

createjs.Tween.pauseAllTweens = function() 
{ 
    var i = 0, 
     tweenObjs = createjs.Tween._tweens.slice().reverse(), 
     tweenObj; 

    for (; tweenObj = tweenObjs[i++];) 
    { 
     pausedTweenObjs.push(tweenObj); 
     tweenObj.setPaused(true); 
    } 
}; 

createjs.Tween.resumeAllTweens = function() 
{ 
    var i = 0, tweenObj; 

    for (; tweenObj = pausedTweenObjs[i++];) 
     tweenObj.setPaused(false); 

    pausedTweenObjs.length = 0; 
}; 
2

Существует более простой способ, чтобы приостановить все анимации при использовании TweenJS из CreateJS ...

createjs.Ticker.paused = истина; // приостанавливает каждую анимацию

createjs.Ticker.paused = false; // отменяет/возобновляет все твины