看板 Flash 關於我們 聯絡資訊
各位好, 最近我開始慢慢熟悉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
younchun:當物件被new時,就已經存在。而addChild是將物件加到顯示 10/03 12:29
younchun:清單,讓畫面上可以看到物件,removeChild則是從顯示清單 10/03 12:30
younchun:中移除,但還是存在。 10/03 12:32
aliasivy:謝謝樓上大大的回應~但這樣不管remove或是給null, 10/03 12:51
aliasivy:物件都還是存在的話,flash裡面有內建garbage collection 10/03 12:52
aliasivy:的機制嗎?感覺都還在好像沒有用會一直堆著這樣?謝謝~ 10/03 12:53
cjcat2266:設null就是要移除參考,一個沒有被參考的物件稱為"孤兒" 10/03 13:03
cjcat2266:當需要記憶體的時候,garbage collector自動會把孤兒 10/03 13:03
cjcat2266:都清除掉 10/03 13:03
aliasivy:哦哦~所以flash也是有garbage collector不用設計師 10/03 15:43
aliasivy:自己處理, 了解~感謝大大! 10/03 15:43