將加載的XML數據分配給對象數組後,我想從內存中刪除XML,或者至少可以使用垃圾收集器。但是,這樣做也會刪除數組中指定的對象值。ActionScript - 將數據分配給數組對象後處置XML?
,而不是調用XMLdata = null;
,我打電話System.disposeXML(XMLData);
所指示的文件:
disposeXML()方法:使 指定的XML對象立即 可進行垃圾回收。這個 方法將刪除指定XML節點的所有節點之間的父節點和子節點 連接。
我應該不會嘗試處理加載的XML數據後,將其分配給一個對象的數組?
//Convert XML Data To Array Of Objects
var XMLData:XML = XML(evt.currentTarget.data);
for each (var station:XML in XMLData.station)
{
var stationObject:Object = new Object();
stationObject.name = station.name;
arrayData.push(stationObject);
}
//Nullify XML
trace(XMLData == null); //false
trace(arrayData[0].name); //traces name
XMLData = null;
trace(XMLData == null); //true
trace(arrayData[0].name); //traces name
//Dispose XML
trace(arrayData[0].name); //traces name
System.disposeXML(XMLData);
trace(arrayData[0].name); //does not trace, traces nothing
我不知道,但它看起來像你設置你的stationObject的值引用,而不是複製,否則我不明白爲什麼對象值在處理xml後清除。嘗試stationObject.name = new String(station.name);並看看你是否得到相同的行爲。另外,使用Object比使用強類型的東西慢。你可能會更好地使用xml本身(例如trace(XMLData.station [0] .name)) – 2010-11-13 13:33:52