2012-03-29 37 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