2012-05-20 3 views
1

AS3에서이 목록을 사전 순으로 정렬하려면 어떻게해야합니까? 나는 프로그래밍 전문가가 아니며 단지 이것을 알아내는 데 어려움을 겪었습니다. 이 XML 배열 요소로 작동하는지AS3 개체 컬렉션 정렬?

var nodes:Array = []; 

for each (var locationElement:XML in mapXML.maplocation) { 
    nodes[nodes.length] = locationElement; 
} 

nodes.sortOn(locationname); 

잘 모르겠어요 :

var searchObject:Object = new Object(); 
var mapXML:XML; 
var xmlLoader:URLLoader = new URLLoader(); 
xmlLoader.load(new URLRequest("interactive-map.xml")); 
xmlLoader.addEventListener(Event.COMPLETE, parseXML); 

function parseXML(event:Event):void { 
    mapXML = new XML(event.target.data); 
    for each (var locationElement:XML in mapXML.maplocation) { 
     searchObject.locationname = locationElement.attribute("locationname"); 
     searchObject.category = locationElement.attribute("category"); 
     trace("Location Name: " + searchObject.locationname); 
    } 
} 

답변

1

가 먼저 배열/벡터에 요소를 밀어 필요 XMLCollection를 사용하는 예입니다. 그런 다음 sortOn 또는 정렬 방법으로 배열을 정렬 할 수 있습니다. sortOn/sort 메서드 참조를 검사하여 정렬 옵션을 찾습니다.

var searchObject:Object = new Object(); 
var searchObjectArray:Array = new Array 
var mapXML:XML; 
var xmlLoader:URLLoader = new URLLoader(); 
xmlLoader.load(new URLRequest("interactive-map.xml")); 
xmlLoader.addEventListener(Event.COMPLETE, parseXML); 

function parseXML(event:Event):void { 
    mapXML = new XML(event.target.data); 
    for each (var locationElement:XML in mapXML.maplocation) { 
     searchObject = new Object(); 
     searchObject.locationname = locationElement.attribute("locationname"); 
     searchObject.category = locationElement.attribute("category"); 
     searchObjectArray.push(searchObject);//pushing elements to array 
    } 
    searchObjectArray.sortOn("locationname")//sorting array 
    for each (var searchObjectElement:Object in searchObjectArray) 
    { 
     trace("Location name: " + searchObjectElement.locationname);//printing sorted array 
    } 
} 
+0

너무 가까이! 그리고 시간 내 주셔서 감사합니다 - 문제는 모든 고유 한 위치 이름을 추적하는 것이 아니라 XML 파일의 마지막 위치 요소를 반복해서 반복한다는 것입니다. 어떤 단서? 또한 모든 것이 배열로 들어가기 때문에 여전히 1 행에 객체가 필요합니까? – lgriffin

+0

Reg line 1 이름/카테고리 String을 배열에 푸시하고 정렬 할 수 있습니다. 그리고 내 코드에 버그가있었습니다. searchObject = new Object();를 추가했습니다. 첫 번째 루프에서 지금은 잘 작동해야합니다. – Bartosz

+0

정말 훌륭합니다. 완벽하게 작동합니다. 다시 한 번 고마워! 훌륭한 일요일 되세요. 정말 감사합니다! – lgriffin