2011-09-07 29 views
2

我正在爲as3開發一款適用於iPhone的遊戲,並且我已經使其運行得相當好(在iPhone 3G上保持24fps),但我注意到當「字符「部分偏離屏幕,幀率下降到10-12fps。有誰知道這是爲什麼,我能做些什麼來補救它?圖像部分在屏幕上查殺as3幀速率在IOS上

更新 - 通過代碼非常徹底,甚至做了一個新的項目只是爲了測試動畫。在屏幕外啓動一個圖像,並將其移到屏幕上並退出。任何時候圖像不在屏幕上,即使是部分圖像,幀速率都很糟糕。一旦圖像完全顯示在屏幕上,事情就會回到最佳的24fps。我正在使用cacheAsBitmap,我嘗試遮蓋舞臺,我嘗試將圖片放入動畫片段並使用scrollRect。我會讓物體脫離屏幕,除了我正在處理的遊戲的性質有物體從上到下下落(是的,我正在使用對象池。不,我沒有縮放任何東西。Striclt x ,y翻譯)。是的,我意識到Obj-C可能是最好的答案,但如果可以的話,我真的很想避免這種情況。 AS3這麼多漂亮的

+2

奇怪的行爲可能在您的代碼中觸發了一個循環。爲什麼不讓它脫離屏幕? –

+0

同意。這可能是您的代碼 – apscience

+0

我的猜測是關於cacheAsBitmap如何在iOS上執行的 - 也許當您的精靈完全在屏幕上時,沒有屏幕外緩衝區,但將它們部分移出屏幕時,會使iDevice每幀管理的像素數量翻倍?也不知道這個線程中是否有任何提示:http://stackoverflow.com/questions/7972967/cacheasbitmap-has-no-effect-on-a-sprite-masked-with-a-scrollrect-in-air-換IOS – ericsoco

回答

0

嘗試寫,並採取看看「blitmasking」技術:http://www.greensock.com/blitmask

從多伊爾自己:

一個BlitMask基本上是一個長方形的雪碧充當DisplayObject的高性能遮罩,方法是緩存它的位圖版本,並且只傳輸在任何給定時間應該可見的像素,雖然它的bitmapMode可以關閉以隨時恢復DisplayObject中的交互性。當滾動非常大的圖像或文本塊時,BlitMask可以極大地提高性能,特別是在處理器較弱的移動設備上。