2011-09-16 101 views
1

我需要從右到左移動100多個精靈,例如,一百個音符將水平滾動應該儘可能平滑,嘗試過移動s:組件組件發現它效率低下,CPU負載過高,甚至在應用updateafterevent()。是否可以順利滾動大量的精靈?吐溫sprite或uicomponent?

使用Flash Builder 4

+0

你移動它們都以相同的速度和方向是什麼? – Spencer

回答

2

我一直工作在一個遊戲引擎,它使用BitmapData及其copyPixels()功能,非常快速地呈現一段時間。

的過程基本上是:

  1. 創建一個Bitmap對象,並將其附加到舞臺 - 這將是你的畫布。
  2. 創建BitmapData的實例,該實例代表筆記的圖形(精靈表單類型) - 可以使用BitmapDatadraw()方法即時生成該實例。
  3. 爲您的筆記創建一個具有表示對此精靈表的引用的屬性的類。
  4. 循環遍歷每個對象,並使用來自Canvas的copyPixels()解析對相關的BitmapData的引用。

如果您訪問my website,您會看到一個演示了我一直在處理的引擎,以上是否可以處理 - 4000多個對象。

很多對象呈現平穩: enter image description here

+0

哇!如果精靈需要通過重畫來點亮(紅色音符)和重置(黑色音符),它的工作效率如何? – vast2

+0

好吧,您的演示在CPU使用率達到50%後掛起。 Stage3D應該可以實現,但我的項目需要在下個月完成。 – vast2

+0

是的,更改通過copyPixels()解析的矩形的x和y值可以讓您獲取源BitmapData(應該包括註釋的紅色和黑色版本)的不同部分。 – Marty