所以...我花了最后一小时试图找出为什么我的数组的排序方法无法正常工作,当我意识到我试图在我的对象中排序的变量不公开时。我已经使用getter方法访问它,该方法适用于所有其他目的。我的问题是:是否有可能以某种方式按私人变量排序?也许通过使用getter方法,但我不知道它在语法上是如何工作的。或者我只需要公开变量吗?
在一个稍微相关的说明中,有没有办法使用标准方法对向量中的对象变量进行排序?
答案 0 :(得分:0)
以下是使用get函数进行排序的示例
var k:Vector.<A> = new Vector.<A>();
k.push(new A(5));
k.push(new A(3));
k.push(new A(7));
k.push(new A(1));
k.push(new A(9));
k.sort(compareFunction);
private function compareFunction(obj1:Object, obj2:Object, properties:Array = null):int
{
var a1:A = obj1 as A;
var a2:A = obj2 as A;
if (a1.level > a2.level)
{
return 1;
}
else if (a1.level < a2.level)
{
return -1;
}
else
{
return 0;
}
}
class A {
private var _level:int;
public function get level():int
{
return _level;
}
public function A($level:int)
{
_level = $level
}
}