如果你有一個變量,它是一個MovieClip,雪碧,字符串,數字,INT,UINT,或布爾,你刪除它的參考加入:AS3:標記垃圾收集的變量,空或刪除?
myVariable = null;
OR
delete(myVariable);
如果你有一個變量,它是一個MovieClip,雪碧,字符串,數字,INT,UINT,或布爾,你刪除它的參考加入:AS3:標記垃圾收集的變量,空或刪除?
myVariable = null;
OR
delete(myVariable);
設置它爲null足以移除對其包含的對象的引用。
。注意,操作者delete
的語法是delete object.member
,這消除member
從object
的密鑰,並且因此將消除對任何它包含一個參考。
請注意,GC只能出現一次所有對給定對象的引用都將被刪除。
刪除僅刪除動態對象。 – csomakk 2013-11-24 10:45:43
使用null
刪除將無法在沒有動態定義的變量工作。
永遠記住/永遠不會忘記...你沒有清除內存的引用。意思是刪除1引用並不總是足夠的,你需要刪除所有引用。
例如:
var a:Object = {};
var b:Object = {};
a.name = "Alpha";
a.o = b;
b.name = "Beta";
b.o = b;
trace(b.name);
trace(a.o.name);
b = null;
trace(a.o.name);
trace(b.name);
而B不存在了,a.o(這是以前稱爲b
的對象)仍然存在。
所以要小心!
我不知道AS,但除非AS嚴重濫用術語「垃圾回收」,否則您不應該需要(請參閱其他GC'd語言的許多類似問題)。 – delnan 2011-01-28 17:43:01
編輯我的問題,謝謝。 – redconservatory 2011-01-28 17:59:03