Я разбираюсь с распределением памяти (и 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. Таким образом, каждый раз, когда вызывается функция, выделяется новая память для хранения объекта Point.
Поскольку нет ссылок на Point (например, var a: Point = new Point (...)), означает ли это, что сборщик мусора освободит память для «новой точки» после вызова функции?
Было бы лучше написать что-то вроде:
var a:Point = new Point();
вне функции enterFrame, затем в функции enterFrame напишите:
a.x = redClip.x
a.y = redClip.y
Так что вы повторно используете память, к которой относится переменная?
Пожалуйста, поправьте меня, если мое предварительное понимание памяти неверно.