2014-01-12 2 views
0

그래서 ... 마지막 시간에 배열의 정렬 방법이 제대로 작동하지 않는 이유를 알아 내려고 노력했습니다. 변수가 객체가 공개적으로 사용 가능하지 않았습니다. 다른 모든 목적으로 잘 작동하는 getter 메서드를 사용하여 액세스했습니다. 내 질문은 : 개인 변수에 의해 어떻게 든 정렬 할 수 있습니까? 아마도 getter 메소드를 사용하는 것이지만 구문 론적으로 어떻게 작동하는지 모르겠습니다. 아니면 변수를 공개해야합니까?배열을 전용 변수로 정렬

약간 관련있는 메모에서 표준 방법을 사용하여 벡터의 개체 변수를 정렬 할 수있는 방법이 있습니까?

+0

정렬 get 함수를 사용하는 예입니다. 그것은 또한 내 문제가 아니었다. 다른 사람이 비슷한 문제를 겪고 있다면, 내 해결책은 정렬 방법에 전혀 없습니다. 정렬 된 순서로 개체를 다시 표시하지 않았으므로 정렬되지 않은 것처럼 보입니다. –

답변

0

여기에 대답은 아래 큰 일

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 

    } 
}