TweenMax меняет незавершенный процесс - PullRequest
0 голосов
/ 19 сентября 2009

Можно ли плавно изменить переход между одной безье на основе анимации и другой, используя TweenMax?

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

t = new TweenMax(movieClip, speed, 
{bezierThrough:[{x:84, y:207}, {x:300, y:345}],
orientToBezier:false, ease:Sine.easeOut, onComplete:walkComplete } );

Существует метод с именем setDestination , который может на лету корректировать параметры назначения, но, похоже, он приводит только к линейной анимации.

http://www.greensock.com/as/docs/tween/com/greensock/TweenMax.html#setDestination()

Ответы [ 3 ]

2 голосов
/ 12 ноября 2010

Более новый метод updateTo делает именно то, что мне нужно:

http://www.greensock.com/as/docs/tween/com/greensock/TweenMax.html#updateTo()

1 голос
/ 20 октября 2009

Вы можете вызывать функцию каждый раз, когда анимация обновляет промежуточный объект, передавая функцию обновления для вызова следующим образом:

t = new TweenMax(movieClip, speed, 
{bezierThrough:[{x:84, y:207}, {x:300, y:345}],
orientToBezier:false, ease:Sine.easeOut, onComplete:walkComplete, onUpdate:walkInProgress } );

Функция обновления, которая может проверять шнуры x и y объекта и ближе к концу создает новую кривую. Ваша функция onComplete может анимировать на новой кривой.

0 голосов
/ 21 декабря 2009

Использование setDestination может привести к плавным переходам путем установки свойств x и y. Я увеличил продолжительность почти заканчивающихся подростков, чтобы предотвратить быстрый переход к новому месту назначения.

if ( t.progress > .8)
 t.duration += 1;
 t.setDestination("x", points[1].x);
 t.setDestination("y", points[1].y);
...