2015-02-12 46 views
0

嘿大家,所以我使用Flash Develop,並將多個Move剪輯添加到舞臺上。每個課程都有自己的課程。現在,我們讓他們在同班同學中使用ENTER_FRAME事件在線性動作中移動,並編碼像this.x += 10然而,這些影片剪輯每個都有逐幀動畫。所以我想知道在影片剪輯對象類中添加this.cacheAsBitmap = true;如果它有助於提升性能,或者因爲它們有多個幀,如果Adobe AIR將不得不重繪這些幀並將它們緩存爲位圖,從而導致進一步的性能問題。從我讀this.cacheAsBitmap = true;將有助於性能的方式階段將不必重新繪製每個FPS的影片剪輯,但有一些退後像這樣「你應該使用cacheAsBitmap只有在你的矢量圖形將保持不變或將有其x或y屬性更新。「CacheAsBitmap是否可以在帶有逐幀動畫的影片剪輯對象上工作?

任何幫助將不勝感激,謝謝你們。

+0

想想我可能已經從Adobe.com發佈的文章中找到了進一步研究的答案啓用cacheAsBitmap即使在更改縮放比例,傾斜度,alpha和/或旋轉(但不更改影片剪輯的幀)時總是有益的DisplayObject發佈移動設備時。 – Nathan 2015-02-12 01:29:17

+1

您對遊戲爲什麼滯後於手機做出了很多假設,這是錯誤的解決方法。要解決任何你需要知道是什麼導致問題不要猜測。屏幕上顯示的對象太多,同時使用矢量圖形等,定時器/輸入框太多了......您需要開始監視應用程序FPS並將屏幕上的內容連接到任何FPS的下降。 – BotMaster 2015-02-12 13:58:37

+0

我明白。我實施了netStat僱傭來跟蹤所有這些。事情是FPS始終保持在26 FPS或26 FPS的恆定速率。我注意到的一件事是內存增加速度相當快,但隨後會不時下降。我在adobe scout中檢查了所有內容,沒有發現任何異常現象,FPS中沒有降低峯值。目前我唯一無法解決的唯一問題是當我在Android Mobile設備上測試遊戲時,屏幕每2秒鐘凍結半秒。我快瘋了。 – Nathan 2015-02-12 21:24:23

回答

0

你基本上明白了。 cacheAsBitmap將無法​​幫助(它可能會傷害)與幀逐幀動畫。

如果您只更改x,y屬性,則使用cacheAsBitmap確實只對自己有用。

使用cacheAsBitmapMatrix(僅適用於AIR)將讓Flash Player將緩存的位圖應用變換(縮放,旋轉,alpha)。

在任何一種情況下,逐幀動畫都會強制重畫,這會消除兩者的值。

最後一點,如果你真的想優化你的動畫,你可以試試converting it to a sprite sheet

+0

嘿謝謝你的迴應是啊,這是一個無賴,我有一種感覺,所有添加到我的遊戲階段的移動剪輯對象造成了滯後。是啊,我仍在研究轉換爲精靈表並將它們實現到遊戲中。它非常困難,我一直在研究starling等等......我最近發現,當我使用Flash AS3處理手機遊戲時,向我的事件監聽器添加弱引用也會導致問題。它可能會導致GC偶爾出現,我認爲這是導致我的屏幕每秒鐘凍結半秒的原因。 – Nathan 2015-02-12 06:50:46

+1

是的,高性能的移動應用程序需要很多紀律,這不是一項簡單的任務。像Starling和Feathers這樣的框架通過強迫你以一種通常可以很好地優化的方式來做事情會有很大的幫助。 – Aaron 2015-02-12 15:20:30