2009-12-02 60 views
1

我有一個由多個圖層組成的MovieClip,其中一個圖層是動畫背景Shape。讓我們將這個帶有背景形狀的MyMovieClip稱爲實例名稱「mcBackground」;應用ColorTransform停止播放MovieClip

var myMovieClip = new MyMovieClip(); 
addChild(myMovieClip); 

這工作得很好,當影片剪輯被添加到它起到預期的階段(背景移動時):

我加入電影剪輯,舞臺從ActionScript。

問題是,當我嘗試將colorTransform應用於背景形狀時,它停止移動。我在做什麼是這個MyMovieClip類中:

var ct:ColorTransform = mcBackground.transform.colorTransform; 
ct.color = some color value; 
mcBackground.transform.colorTransform = ct; 

當我這樣做,背景正確着色,但現在不活躍,這似乎是在第1幀就卡住的顯示儘管我在後面的框架中執行了任何代碼。所以它看起來像一個顯示問題。

這裏有什麼問題?正在改變transform.colorTransform可能動畫形狀?

讓我知道如果描述不清楚,我會盡力解釋更多。

回答

2

通常,應用於任何時間軸補間對象的動作將會破壞補間。 您可以嘗試用另一個剪輯封裝時間線,並將colorTransform應用於該剪輯。

+0

很感謝,我不知道。現在我已經用另一個剪輯包裹了該剪輯,而colorTransform仍然應用於原始形狀。它的工作原理。 – 2009-12-02 23:38:24

0

還要感謝doamnaT(我沒有足夠的代表upvote呢)。我還發現,從主要時間線上分離時間線通常是一種很好的做法,恰巧可以避免這樣的問題。通常我的主要時間線只有一幀。

1

當ActionScript代碼設置一個實例(位置,縮放,旋轉,α,顏色,過濾器等)的任何顯示方面,由於在時間軸上的關鍵幀的任何變化將不再被應用於該實例。這個實例的顯示屬性將被凍結(就時間軸而言)到actionscript設置屬性值的那一刻,並且只能由動作改變。

此行爲也適用於沒有補間的時間軸/關鍵幀。

當actionscript執行而不是變換/過濾器​​相關的事件時,此行爲不會發生,並且時間軸按預期執行。例如,設置DisplayObject.visible不會觸發這種行爲。此外,更改TextField的文本不會觸發該行爲。

當在實例的子級上設置display屬性不會觸發行爲時,將實例包裝到額外的movieclip中是一種很好的解決方法。