我正在開發使用Adobe Air的iPad應用程序。AS3異步位圖創建iOS
當應用程序啓動時,我已將所有圖像加載到BitmapData
對象中。然後我只需要創建Bitmap
對象(它們只是容器)來使用存儲在BitmapData
對象中的像素。
這工作正常,直到我必須創建一個大圖像Bitmap
對象。該應用程序速度減慢,甚至凍結,最多1秒鐘。
由於AS3是單線程的,因此我無法將Bitmap
創建委託給新線程。此外,如果UI被凍結,我無法展示一個體面的微調器來通知用戶「有什麼事情正在進行」。
我該如何解決這個問題? 有沒有辦法在不影響UI性能的情況下並行創建對象?
這樣做的更常見(儘管不正確)方式是簡單地調用您希望加載到內存中的BitmapData上的「BitmapData.getPixel(0,0)」。這將解碼數據以獲得像素(並且也將在嵌入式圖像上工作)。請注意,解碼圖像會將_uncompressed_圖像加載到內存中。由於您可以在iOS中使用少量的RAM,並且運行時間有多大,這可能會非常快速地成爲問題。 –
謝謝@JoshJanusch我會留意記憶。到目前爲止,上述解決方案非常有效。 – Pier
我強烈建議獲得Adobe Scout。它將極大地幫助您試圖監控所有性能,尤其是內存 –