2011-11-22 75 views
1

我一直在工作的Flash遊戲,我通過附加兒童影片剪輯添加子動畫到動畫片段。這創建了具有不同動畫的電影剪輯的層次結構,但是結果是父動畫片段結束了無限增長並且吃了很多內存。有沒有一種方法可以優化這種動畫?如果位圖緩存起作用,我是否可以緩存運行前添加的所有子項(例如,在設計期間和發佈SWF之前添加的子級動畫片段)。
PS我正在使用Flash Air 2.6,如果有任何幫助的話。Flash動畫片段與動畫吃內存

回答

1

那麼,你自己給出答案,Flash可以做很多但沒有無限的內存量。然而,精心設計的動畫是,如果父級影片剪輯「無限增長」,當然會有一個點,所有的都會崩潰。

根據給出的信息,我只能給你一個一般的答案。

  • 無法添加無限量的孩子,但是如果您不斷刪除超出範圍的孩子,您肯定會給出這種印象。

  • 有沒有什麼方法可以避免重複來改進設計?

  • 您是否在Flash IDE中工作,或者您是否使用其他IDE(如FlashBuilder),後者具有可幫助您檢查應用程序內存使用情況的分析工具。

1

要添加什麼帕特里克說: 位圖緩存可能使用更多的內存,這取決於你怎麼做。但是,如果您有多個同一事物的實例,則可以只製作其中一個實例並在任何地方重新使用其像素,這與您在此看到的http://flexdiary.blogspot.com/2009/12/riadventure-inspiration.html類似。您可能還想研究對象池http://blog.joa-ebert.com/2008/05/07/tweening-and-object-pools/。但是,當內存開始失控時,我通常會懷疑你已經通過向對象添加偵聽器而不刪除它們(因此它們不能被垃圾收集)而導致內存泄漏。其他可導致內存泄漏的方法是通過字典或使用setTimeout引用對象,但未正確調用clearTimeout。