开发者

ArrayCollection error in Flex does not accept single XML nodes - alternatives?

i get this error when i retrieve an XML that only 开发者_StackOverflow社区has 1 node (no repeating nodes) and i try to store in an ArrayCollection. -When I have MORE than 1 "name" nodes...i do NOT get an error.

TypeError: Error #1034: Type Coercion failed: cannot convert "XXXXXX" to mx.collections.ArrayCollection.

this error occurs as the line of code:

myList= e.result.list.name;

Why can't ArrayCollection work with a single node? I'm using this ArrayCollection as a dataprovider for a Component -is there an alternative I can use that will take BOTH single and repeating nodes as well as work as a dataprovider? Thanks in advance!

code:

[Bindable]
private var myList:ArrayCollection= new ArrayCollection();

        private function getList(e:Event):void{

            var getStudyLoungesService:HTTPService = new HTTPService();
            getStuffService.url = "website.com/asdf.php";
            getStuffService.addEventListener(ResultEvent.RESULT, onGetList);
            getStuffService.send();

        }

        private function onGetList(e:ResultEvent):void{

            myList= e.result.list.name;
        }


The resultFormat should be set to e4x:

var getStudyLoungesService:HTTPService = new HTTPService();
getStuffService.url = "website.com/asdf.php";
getStuffService.resultFormat = "e4x";
getStuffService.addEventListener(ResultEvent.RESULT, onGetList);
getStuffService.send();

You can then retrieve the results as follows:

new XMLListCollection(e.result.list.name);

(All credits to Amarghosh, been banging my head on that one for hours, but nearly missed his comment!)


You cannot directly assign an XML or even an XMLList to a variable of type ArrayCollection. Use an XMLListCollection and pass the data to its constructor.

[Bindable]
private var myList:XMLListCollection;

myList = new XMLListCollection(e.result.list.name);
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜