2011-08-04 56 views
0

是否具有多個幀或更改符號屬性是一種更好的做法。例如,如果您有某種活動狀態和被動狀態,則可以使用gotoAndStop(2),gotoAndStop(1);或你可以操縱任何直接改變的屬性(例如,如果它是alpha,那麼symb.alpha=0.5, symb.alpha = 1.0)。在Flash中,使用AS

我發現自己在兩者之間跳躍,我不喜歡它(我喜歡有一個標準,或者至少通常)。什麼被認爲是一種好的做法,爲什麼?

回答

1

如果您使用AS2使用幀並且gotoandstop沒問題,那麼在AS3中您確實需要評估它是否適用於您。對我來說,大多數情況下,利弊大於專業人士,所以我會謹慎使用相框。

as2和as3最大的區別在於,在as2中資源可以立即訪問。在AS3中,資源無法立即訪問。

例如,如果你有一對框架3名爲_mc1影片剪輯,在AS2你可以做

mymc.gotoandstop(3); 
mymc._mc1.visible = false; 

在AS3那就沒辦法了,你會得到錯誤,就需要添加的OnRender監聽器並在其中添加代碼。 這樣做是一場噩夢

這並不是說我不使用框架,例如,當我使用movieclip作爲按鈕時,我沒有任何資源需要訪問,所以我不擔心使用框架。

你應該記住的另一件事是正在使用的內存。如果您的對象具有偵聽器或具有昂貴的創建和刪除功能,那麼將這些對象放在時間線上,您可以使用更多的內存和處理,而不是使用純代碼執行。

0

就我個人而言,我總是喜歡純粹用代碼來做事情,因爲我覺得它給了你更多的控制權,並且因爲代碼比時間線工作更自我記錄。我還發現代碼更容易攜帶。

0

我幾乎總是使用gotoandstop做事的方式。對我而言,我總是試圖保持我的代碼長度不變,這讓我可以做到這一點。

例如,如果有很多我想要處理的動畫需要在翻轉時完成,根據複雜程度可能需要5-10行代碼。如果我能夠在時間軸上做到這一點,我發現我的代碼保持清潔。

我不確定是否有最佳做法,這可能是更多的個人偏好,但我肯定堅持貫穿整個項目的一種方式。

1

我寧願總是在代碼中做這個東西,除非我不能。在代碼中進行的任何動畫或其他更改幾乎總是比在時間軸上執行相同的動畫更容易進行調整(特別是在使用TweenLite時)。當然,這種方式可以通過動態數據來驅動UI(例如,數據庫中每個用戶的滾動效果是唯一的)。

「不能」的情況是複雜的圖像變化,就像在鼠標移動時改變表情的表情一樣。

但它取決於您的工作室的工作流程;有時設計師會堅持使用他們的圖形資源,而不是將它們當作模型來重新編碼,在這種情況下,我通常不會討論。

+0

+1代碼是代碼,動畫是動畫。我爭取分開2.雖然除非是簡單的繪圖,我不會使用繪圖API。 –