반응형
javascript에서도 버그인지 고의적인지는 알수 없지만.. 배열의 수가 1개일때
그 length를 가져 올수 없고 배열로 취급하지도 않는 현상은 알고 있었지만
flex의 actionscript에서도 그럴줄은 몰랐다..
여지껏 actionscript로 프로젝트를 진행한 수만 해도 10개는 넘는 것 같은데 아직까지 xml의 elements들이 하나인 경우가 없어서 몰랐다 ㅠㅠ
겨우 원인을 알아 차렸을때는 이미 나의 스트레스 지수가 100%를 달리고 있었다..
암튼 HTTPService를 이용하여 원격 xml의 elements들을 가져오려 할때 그 수가 하나 이하이면
LastResult 의 XML 데이터는 배열로 취급하지 않는다..
그 해결방법으로는 우선 그 elements가 ArrayCollection 으로 되어있는지 아닌지를 판단하고
되어있다면 2개 이상 되어 있지 않다면 addItem으로 직접 추가하여 dataProvider에 ArrayCollection을 지정하여 주면된다..
우리나라 블로그들에는 자세히 설명된 곳이 없어 나와 같이 엉뚱한 고생을 하는 분들이 없기를 바라며.....
아래는 예제 소스
private var acFileList:ArrayCollection;
private function rsHandlerGetFileList(event:ResultEvent):void{
acFileList = new ArrayCollection();
if(getfilelist.lastResult.root.filename is ArrayCollection){
acFileList = getfilelist.lastResult.root.filename;
}else{
acFileList.addItem(getfilelist.lastResult.root.filename);
}
FileList.dataProvider = acFileList;
}
반응형
'개발자이야기 > FLEX이야기' 카테고리의 다른 글
RIA 로 이루어진 사이트 (0) | 2009.03.11 |
---|---|
Flex 추천 사이트 (0) | 2008.11.11 |