作者yhn0tgb60 (呦厚厚)
看板Flash
標題[問題] 關於移除物件的問題
時間Sat Apr 10 02:45:04 2010
就是阿
當我宣告了一個 class 裡面 new 了很多物件
那當我在不使用這個物件時 需要將這些 new 的物件設為 null 嗎???
因為以前是寫 C++ new 的東西都一定要 delete 才行
雖然聽說 as3 有自動資源回收的機制... 不過不是非常了解...
另外 as3的 delete 是用在什麼情況阿 好像很少看到人用
好像大多都是用 null....
還有當我在 一個 MovieClip 裡面加了許多的 addChild 和 addEventListener
當我 null 這個 MovieClip 時
需要把裡面的東西都 removeChild 和 removeEventListener 嗎 ???
還是 null 後就會自動釋放資源 ???
甚至當我載入一個 swf 檔時 在 unload 前
需要先 removeChild 和 removeEventListener 嗎 ???
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.155.241
1F:推 emily114005:當一個object已經沒辦法用變數去存取他(= null)時 04/10 03:52
2F:→ emily114005:AS3會自動將此object加到garbage collection裡 04/10 03:53
3F:→ emily114005:然後在系統需要釋放資源時,AS3才會把該object的資源 04/10 03:55
4F:→ emily114005:釋放出來 04/10 03:55
5F:→ emily114005:removeChild是用在移除顯示物件 需要移除再移除囉 04/10 03:56
6F:→ emily114005:而EventListener最好是在沒用到的時候就remove掉 04/10 03:57
7F:→ emily114005:才不會造成資源浪費 :) 04/10 03:58
8F:推 cjcat2266:只有記憶體不足的時候才會去清除無法存取的物件(孤兒) 04/10 10:39
9F:→ cjcat2266:當記憶體足夠的時候,孤兒是不一定會被清掉的 04/10 10:39
10F:→ Lawnchern:所以 delete是....什麼時候會用呢@@?我也想知道 04/10 11:09
11F:推 terrylchen:我記得之前看的說明好像是說delete沒辦法刪除區域變數 04/10 19:24
12F:→ terrylchen:不知道正不正確... 04/10 19:25