2012-04-12 61 views
0

如何停止下一個補間動作開始,直到上一個補間在as3.0中完成播放爲止?補間as3停止下一個補間發生,直到最後一個完成

我也想停止補間發生在同一個對象兩次。

基本上我有一個容器(電影剪輯),其中有n個電影剪輯(排列爲磚)。當我點擊容器時,目標(磚)將消失(將scaleX和alpha設置爲'o')。我也在跟蹤關閉了多少塊磚頭。

但問題是如果我做快速雙擊補間似乎發生兩次。而且伯爵似乎也增加了同樣的磚塊。如何解決這個問題呢。

回答

1

吐溫之後吐溫

使用的事件處理程序,以等待第一個補間完成,像

myTween.addEventListener(TweenEvent.MOTION_FINISH, onFinish); 

function onFinish(e:TweenEvent):void { 

     ... // Call the next tween here 

} 


雙擊問題

刪除事件點擊按鈕後立即收聽,例如:

my_btn.addEventListener(MouseEvent.CLICK, onClick); 

function onClick(e:MouseEvent){ 

     my_btn.removeEventListener(MouseEvent.CLICK, onClick); 

     myTween.start(); 

} 
0

你可以使用Tweener,並使用

isTweening()autoOverwrite = false來解決這個問題。

我在一段時間內沒有使用過這些屬性/函數,但我確定Tweener中的某些功能可以輕鬆地完成此操作。

0

您使用Tweener的任何原因。 Greensock的Tweenmax/lite軟件包現在看起來是行業標準。

您似乎遇到的問題是您多次啓動補間。如果所有塊需要同時縮小,我可能會使用for循環並在它們中的每一個上運行補間。

你必須確定的事情是,一旦它被點擊以刪除點擊事件處理程序,直到它完成,所以它不會再次被點擊。

我也建議使用TweenMax/Lite,因爲它有一些名爲TimelineMax/Lite的地方,可以將一組補間同時或錯開地混合,並偵聽該時間軸對象上的一個COMPLETE事件。當該事件觸發時,您可以重新激活點擊或完成動畫完成後需要執行的任何操作。

TimelineMax有一些不錯的功能,如reverse和timeScale。

你能夠粘貼一些代碼嗎?這也可以幫助我們幫助你。