【发布时间】:2011-11-01 22:09:52
【问题描述】:
我开始掌握内存分配(以及一般的 ActionScript 3),我在教程中遇到了这样的函数:
addEventListener(Event.ENTER_FRAME, enterFrame);
function enterFrame(e:Event):void
{
if(redClipBmpData.hitTest(new Point(redClip.x, redClip.y),255,blueClipBmpData,new Point(blueClip.x, blueClip.y),255))
trace("hit");
}
我担心的部分是 hitTest 函数中的 'new Point...' 位。因此,每次调用该函数时,都会分配新的内存来存储 Point 对象。
因为没有对 Point 的引用(如 var a: Point = new Point(...)),这是否意味着垃圾收集器会在调用函数后为“new Point”释放内存?
这样写会不会更好:
var a:Point = new Point();
在enterFrame函数外,再在enterFrame函数内写:
a.x = redClip.x
a.y = redClip.y
所以你正在重新使用变量引用的内存?
如果我对记忆的初步理解有误,请纠正我。
【问题讨论】:
标签: flash actionscript-3 memory-management