2004/6/28

使用Tween要注意的小地方

這次的作品中用了許多tween來做特效,十分方便好用,調整或修改也十分容易,大大提昇製作時間。
但有個地方要注意,就是什麼時候用完,要清的最好還是清掉。

以廖添丁遊戲中「故事介紹」單元為例,我做了一個文字向上跑的說明畫面,就像是電影劇終時的工作人員名單,當跑完時會執行一個函式再跳到指定的場景。而在此同時,右下角也有一個skip的按鈕,可跳過說明直接到達指定場景。

寫起來會像是
gotoFrame=function(){
_root.gotoAndStop("game")
}
info.tween= new mx.transitions.Tween(
info, "_y",
mx.transitions.easing.None.easeOut,
100, 0, 300);
info.tween.onMotionFinished = gotoFrame
skipBtn.onRelease=gotoFrame


其中gotoFrame就是跳別的場景的函式
info是說明文字的mc,我以為把tween放在他自己身上會比較好管理。
而用onMotionFinished=gotoFrame,表示當tween完成時自動轉場景。
而skipBtn上當然也指定同樣的函式。

然後問題來了,如果我都不按skip的話,300個frame過後,他會自動執行gotoFrame函式,這是ok的。

但如果我在中途,例如畫面一出來就按下skip的話,gotoFrame會被執行沒錯,但不管場景目前在哪,300個frame過後,gotoFrame依然再被執行一次。

我本來以為tween放在info這個mc?就沒事了,因為我gotoFrame後是在另一個scene了,場景上info這個mc早就不存在了,但其實info.tween仍在作業中…真納悶…

所以最好要在gotoFrame的函式?,將info.tween徹底清掉才行。

沒有留言: