为了防止 ActionScript 3.0 中的内存泄漏,我在必须使用向量的类中使用成员向量,例如:
public class A
{
private var mHelperPointVector:Vector.<Point> = new Vector.<Point>();
public static GetFirstData():Vector.<Point>
{
mHelperPointVector.length = 0;
....
return mHelperPointVector;
}
public static GetSecondData():Vector.<Point>
{
mHelperPointVector.length = 0;
....
return mHelperPointVector;
}
}
然后我有使用 GetFirstData 和 GetSecondData 方法的消费者,存储对这些方法返回的向量的引用,例如:
public function OnEnterFrame():void
{
var vector:Vector.<Point> = A.GetSecondData();
....
}
这个技巧似乎很好,但有时我需要在一段时间后处理 GetSecondData() 返回的向量,在这种情况下,这个向量会被另一个调用 GetSecondData() 或 GetFirstData() 覆盖......解决方案是将向量复制到新向量......但在这种情况下最好完全避免这个技巧。你如何处理这些问题?我必须使用大量向量(每个向量的长度在 1-10 之间)。