作者aliasivy (別名艾維)
看板Flash
標題[討論] 元件用完之後remove或是給null的差異
時間Tue Oct 2 23:01:33 2012
各位好,
最近我開始慢慢熟悉Flash一些基本操作,
還有AS3.0的用法,
目前參考練習的內容是這位作者的網站:
"I Help People Make Flash Games"
AvoiderGame Tutorial
http://0rz.tw/7juns
不過練習完Part3之後有個疑問是,
addChild加入gameOverScreen之後,
把playScreen設為null,
這樣子的做法,
跟removeChild或是removeListener的作法,
有沒有什麼差異?
我自己的感覺好像是,
playScreen給了null,
所有相關的物件的pointer全部都消除,
但其實相關的物件都還存在著,
是這樣子的嗎?
還請各位指正我的觀念~謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.135.139
1F:→ younchun:當物件被new時,就已經存在。而addChild是將物件加到顯示 10/03 12:29
2F:→ younchun:清單,讓畫面上可以看到物件,removeChild則是從顯示清單 10/03 12:30
3F:→ younchun:中移除,但還是存在。 10/03 12:32
4F:→ aliasivy:謝謝樓上大大的回應~但這樣不管remove或是給null, 10/03 12:51
5F:→ aliasivy:物件都還是存在的話,flash裡面有內建garbage collection 10/03 12:52
6F:→ aliasivy:的機制嗎?感覺都還在好像沒有用會一直堆著這樣?謝謝~ 10/03 12:53
7F:推 cjcat2266:設null就是要移除參考,一個沒有被參考的物件稱為"孤兒" 10/03 13:03
8F:→ cjcat2266:當需要記憶體的時候,garbage collector自動會把孤兒 10/03 13:03
9F:→ cjcat2266:都清除掉 10/03 13:03
10F:→ aliasivy:哦哦~所以flash也是有garbage collector不用設計師 10/03 15:43
11F:→ aliasivy:自己處理, 了解~感謝大大! 10/03 15:43