[問題] 關於移除物件的問題

看板Flash作者 (呦厚厚)時間16年前 (2010/04/10 02:45), 編輯推噓3(309)
留言12則, 4人參與, 最新討論串1/2 (看更多)
就是阿 當我宣告了一個 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

04/10 03:52, , 1F
當一個object已經沒辦法用變數去存取他(= null)時
04/10 03:52, 1F

04/10 03:53, , 2F
AS3會自動將此object加到garbage collection裡
04/10 03:53, 2F

04/10 03:55, , 3F
然後在系統需要釋放資源時,AS3才會把該object的資源
04/10 03:55, 3F

04/10 03:55, , 4F
釋放出來
04/10 03:55, 4F

04/10 03:56, , 5F
removeChild是用在移除顯示物件 需要移除再移除囉
04/10 03:56, 5F

04/10 03:57, , 6F
而EventListener最好是在沒用到的時候就remove掉
04/10 03:57, 6F

04/10 03:58, , 7F
才不會造成資源浪費 :)
04/10 03:58, 7F

04/10 10:39, , 8F
只有記憶體不足的時候才會去清除無法存取的物件(孤兒)
04/10 10:39, 8F

04/10 10:39, , 9F
當記憶體足夠的時候,孤兒是不一定會被清掉的
04/10 10:39, 9F

04/10 11:09, , 10F
所以 delete是....什麼時候會用呢@@?我也想知道
04/10 11:09, 10F

04/10 19:24, , 11F
我記得之前看的說明好像是說delete沒辦法刪除區域變數
04/10 19:24, 11F

04/10 19:25, , 12F
不知道正不正確...
04/10 19:25, 12F
文章代碼(AID): #1BltMoZq (Flash)
討論串 (同標題文章)
文章代碼(AID): #1BltMoZq (Flash)