0

有關於這個問題的多次討論,但我要注意的情況是恕我直言,似乎不是那麼清楚:閃存管理和ActionScript

是一般的規則是: 刪除chachedAsBitmap 停止的動畫片段,如果打 刪除事件 刪除引用 等

但讓我們來看看:

第一個例子: 我有嵌套精靈(例如:mainSprite),它包含了其他精靈動態文本字段(並且被拼湊爲位圖),只是帶有事件偵聽器的textFileds和MovieClip(帶有弱引用)。 當我需要刪除這個精靈,我需要先通過循環來刪除它的所有嵌套內容或只是

removeChild(mainSprite); 
mainSprite=null; 

只是還不夠嗎?

第二個例子: 我有一些精靈,我正在加載位圖和使用bitmapData操作,後來我只是用另一個位圖替換這個精靈的內容,爲舊位圖分配內存自動擦除並被覆蓋或它仍然存在?

第三個示例: 我在舞臺上添加了一些「動態數據」(並添加了事件偵聽器),我有一些「圖形模板」MovieClip(在庫中帶有用於Actionscript屬性的Export集)它是應用程序的一個場景,在另一個場景中,我需要與其他動態數據相同的MovieClip,但是在兩者之間需要清除舞臺(需要類似圖庫MovieClip的過渡動畫),最佳方法是:將此MovieClip設置爲可見屬性設置爲false(轉換動畫播放時),然後重新使用它,或者只是使用removeChild刪除它,然後再添加addChild時再添加?

我寫的所有內容都是關於Air Mobile的,在大多數情況下,對於桌面而言,這些情況並不是那麼有問題,但是在移動開發的情況下。

回答

0

第一個示例:從顯示列表中刪除mainSprite就足夠了,如果其子節點上只有弱聽者。 第二個例子:我建議重複使用與visible = false相同的對象。重新創建相同的對象會帶來更多的資源開銷,並且會在內存被獲取之前獲得同一事物的另一個實例。