0

我爲大量對象(2000+)上的植絨/轉向行爲設置了一些庫類。我發現在< 500個實例中,性能是合理的。隨着數字的增加,幀率下降。ActionScript 3優化 - 用大對象提高性能

我已經看到了像Flint或Box2D這樣具有荒謬的粒子/對象的庫的出色表現,所以應該可以優化/重構我的代碼,使其更好一些。

我知道基本的優化,比如按位運算和循環優化。我應該考慮更多的基本方法嗎?例如,當前每個實例都是基於矢量的MovieClip。使用BitmapData會更高效嗎?

+0

總之,我相信你對使用BitmapData和基於矢量的影片剪輯是正確的,你甚至可以通過在你的影片剪輯上將cacheAsBitmap設置爲true來獲得更高的效率。一般來說,我認爲Flex/Flash最大的性能提升是嚴格控制對象的創建和銷燬,我知道這很明顯,但盡你所能重新使用已創建的對象。同樣也可能違反直覺,因爲玩家可以更好地使用Number來優化數字,而不是使用uint或int。 – shaunhusain 2011-01-13 19:52:13

+0

具體來說,我在使用谷歌地圖flash api時優化代碼時使用了其中的一些技術,更多內容請訪問http://www.svennerberg.com/2009/01/handling-large-amounts-of-markers-in-google -maps /我還建議儘可能避免使用Bindable,因爲這有可能會增加大量不必要的開銷(將偵聽器/調度程序代碼添加到AS3中並自動調度事件代價高昂)。 – shaunhusain 2011-01-13 19:55:57

回答

1

忘記載體。

將它們緩存爲位圖數據並繪製到位圖,或者將位圖填充矩形繪製到圖形上。

不使用矢量。找到解決辦法。聰明。位圖查找表,緩存,更多查找表。 花費內存緩存不同的方向,視圖,框架等東西,而不是花費CPU浪費CPU週期。