0

是否可以使用 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()

4

3 回答 3

2

较新的updateTo方法正是我所需要的:

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

于 2010-11-12T19:54:22.503 回答
1

每次补间更新正在补间的对象时,您可以调用一个函数,方法是传入一个更新函数来调用,如下所示:

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 函数可以在新曲线上设置动画。

于 2009-10-20T00:08:57.147 回答
0

使用setDestination可以通过设置 x 和 y 属性来实现平滑过渡。我增加了即将结束的补间的持续时间,以防止快速跳转到新的目的地。

if ( t.progress > .8)
 t.duration += 1;
 t.setDestination("x", points[1].x);
 t.setDestination("y", points[1].y);
于 2009-12-21T10:45:21.763 回答