Неожиданная дисфункция TimeLineMax - PullRequest
2 голосов
/ 13 октября 2011

У меня есть Объект, и я хочу применить две анимации движения. Я пытаюсь добавить их к временной шкале, но у меня возникают некоторые проблемы. Когда я проверяю его, в большинстве случаев мне приходится нажимать много раз, чтобы получитьРезультаты. Также происходит странная вещь, если я устанавливаю время истечения для второй анимации движения более чем на 1 секунду (фактически больше 0,5), это работает. Я работаю во флэш-памяти cs4, и класс связывается с объектом.

package {

import com.greensock.*;
import com.greensock.easing.*;
import flash.display.MovieClip;
import flash.events.MouseEvent;

public class Border extends MovieClip
{
     private var myTimeline : TimelineMax = new TimelineMax( );

    public function Border( ) {             
    }   

    public function doAnimate ( ev : MouseEvent )
    {
        myTimeline.append(TweenMax.to(this, 0.5, { width : 400 } ) );
        myTimeline.append(TweenMax.to(this, 0.5 , { height : 400 } ) ); // <--
    }
    public function deAnimate ( ev : MouseEvent )   
    {       
        myTimeline.reverse( );
    }
  }
}

Основной класс

package {

import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;

public class Document extends MovieClip {

    public function Document( )     {
        right.addEventListener( MouseEvent.CLICK , border.doAnimate );
        left.addEventListener( MouseEvent.CLICK , border.deAnimate );
    }
  }
}

1 Ответ

2 голосов
/ 19 октября 2011

Вы сразу создали свой экземпляр TimelineMax (над вашим конструктором), и он сразу начинает воспроизводиться, но вы не заполняете его позднее (по-видимому, в MouseEvent.CLICK).Таким образом, вы размещаете своих подростков на временной шкале перед виртуальной точкой воспроизведения.Например, представьте, что точка воспроизведения временной шкалы находится на 5 секундах, когда вы помещаете в нее своих подростков в точке с 0 секундами.Более подробно это объяснено на http://forums.greensock.com/viewtopic.php?f=1&t=3842&p=15044#p15044. Решение довольно простое: просто перезапустите TimelineMax в вашем методе doAnimate ().Это, очевидно, заставит виртуальную точку воспроизведения переместиться в начало.Есть и другие способы, которыми вы могли бы справиться с этим, но я думаю, что самая простая вещь в вашей ситуации - это перезапустить () график времени.Не стесняйтесь задавать вопросы на специализированных форумах по адресу http://forums.greensock.com (мы прилагаем все усилия, чтобы оперативно отвечать на вопросы).

...