2012-03-29 89 views
0

我在Movieclip中有一个对象,我目前有一个补间设置。我把它放在舞台上,而不是动作。as3动态补间时间

我需要动态地改变这个补间的持续时间。我还没有找到一种方法来做到这一点。

我不介意动态创建补间,如果需要的话,在代码中设置初始持续时间,但我仍然没有找到任何动态更改持续时间的参考。

这可能吗?

我只是在学习as3,所以很抱歉,如果这应该是显而易见的。

+0

[这里的DOC(http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/fl/transitions/ Tween.html?filter_flash = cs5&filter_flashplayer = 10.2&filter_air = 2.6#持续时间),告诉你如何。 – 2012-03-29 15:31:55

+0

您可以通过使用计时器或ENTER_FRAME事件来手动执行此操作,以更新代表影片剪辑中当前帧的int值,或者如以下答案所示,使用补间动画库,它可以补间影片剪辑帧(如eaze或TweenLite与FramePlugin激活) – 2012-03-29 16:28:15

回答

2

理想情况下,你可以通过编程补间来做到这一点,有很多库,使它很容易。

我经常使用的其中一个是eaze-tween,它具有时间线补间功能,尽管我没有使用它,但值得一试。 eaze(target).to(duration, { frame:"label" });

格兰特斯金纳的gtween库似乎也能够使用GTweenTimeline类。

您可以做的另一件事是修改动画以各种速率出现的帧,所以为了加快速度,您一次只能浏览两帧,速度要快两倍。这种方式使其限于速度的倍数。

如果你想有更多的控制,你需要有一个更长的补间,否则你可能会注意到不太平滑的运动。要做到这一点,将有一个100帧的过渡,并使用补间库,其中的更新使补间的值(这是一个介于0和1之间的数字),并乘以帧的数量(100)并更新框架mc.gotoAndStop(int(val*100);。然后您可以分配各种补间功能和持续时间。

希望它有助于

+0

有一个类似的问题问,显示后来的情绪代码http://stackoverflow.com/questions/6296929/timeline-animation-and-as3-tween-class – Daniel 2012-03-29 23:01:30

2

我强烈建议你切换到TweenLite的/ TweenMax库,它的真棒,免费的,超级容易使用,它会改变你的工作方式! 看一看here,并here on the forum有关于如何更改时间长度的说明动态

+0

100%同意。并且让OP用TweenLite/Max编程方式调用它,就像'TweenLite.to(yourDisplayObject,yourDuration,{yourProperties});'那样简单:'TweenLite.to(myMovieClip,0.5,{alpha:0, easy:Expo.easeOut});'这会将myMovieClip的不透明度调整为0,在半秒范围内 – Ronnie 2012-03-29 21:16:42

+0

有许多补间库或引擎,但它们并没有真正解决OP的问题。 – Daniel 2012-03-29 23:01:04

+0

@Daniel我提供的链接地址 – 2012-03-30 09:35:20