【发布时间】:2011-06-01 07:25:06
【问题描述】:
我想知道 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);
但是Object 如何/将在以下情况下收集垃圾。
假设我在班级 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"});
【问题讨论】:
标签: flash actionscript-3 garbage-collection