Tweenmax frame & onComplete проблема

У меня проблема со временем. Мне нужно получить grape MovieClip до последнего кадра в течение, например, 10 секунд, а затем изменить анимацию, но onComplete срабатывает, после того, как grape MC достиг 11-го кадра! Есть ли какой-то параметр onTimeOut? Я искал везде, пробовал много обходных путей, но ничего не получалось идеально, он либо заканчивает всю анимацию до того, как закончится таймер, либо наоборот.

private function changeAnimation():void
{
    if (currentGrapeNumber > 0)
    {
        TweenMax.killTweensOf(grapes["Grape" + currentGrapeNumber]);
        if (currentGrapeNumber == 30)
        {
            return;
        }
    }
    currentGrapeNumber++;
    currentAnimation = TweenMax.to(grapes["Grape" + currentGrapeNumber], minutesPerGrape * 60, { frame:11, onComplete:changeAnimation });
}

EDIT 1: существует переменная currentAnimation, потому что пользователь может нажать кнопку паузы. Я пытаюсь использовать собственный класс таймера pausable в качестве обходного пути сейчас, но все еще надеюсь, что есть способ без использования таймеров.

EDIT 2: таймер участвует, так как приложение имеет обратный отсчет.

1 ответ

  1. Проблема решена, я просто добавил Это в метод updateClock:

    private function updateClock(e:TimerEvent):void
    {
        secondsToSwitch--;
        if (secondsToSwitch == 0)
        {
            secondsToSwitch = Math.round(minutesPerGrape * 60);
            changeAnimation();
        }
        /**
         * Function body
         */
    }
    

    И поменял TweenMax.to() in changeAnimation метод:

    currentAnimation = TweenMax.to(grapes["Grape" + currentGrapeNumber], minutesPerGrape * 60, { frame:11 });
    

    НО. Если у вас есть альтернатива или какой — то мистический параметр «onTimeOut» в TweenMax-не стесняйтесь опубликовать его 🙂