Я хочу знать о типе Object
, особенно когда речь идет о сборке мусора во Flash.
Я знаю, что элементы будут готовы к сборке мусора в таких ситуациях:
// create
var ar:Array = [];
var mc:MovieClip = new MovieClip();
mc.addEventLisntener(blah, blah);
ar.push(mc);
addChild(mc);
// kill & gc
ar.splice(0, 1);
mc.removeEventListener(blah, blah);
removeChild(mc);
Но как / 1007 * будет собирать мусор в ситуациях, подобных приведенным ниже.
Скажем, у меня в классе есть функция MartysMC
, которую я анализирую Object
через:
package
{
import flash.display.MovieClip;
public class MartysMC extends MovieClip
{
/**
* Updates this
* @param obj An object containing key/value pairs to represent new property values
*/
public function update(obj:Object):void
{
var i:String;
for(i in obj)
{
this[i] = obj[i];
}
}
}
}
А теперь я использую эту функцию следующим образом:
var mmc:MartysMC = new MartysMC();
var dataObject:Object =
{
x: 10,
y: 34,
alpha: 0.6
};
mmc.update(dataObject);
Что происходит с dataObject
?Будет ли это собирать мусор отсюда?Даже все же, что об объекте в этой строке:
mmc.update({x:15,y:18,name:"marty"});