and, if I write code to convert the XML to an ArrayCollection, and
bind to the new ArrayCollections, everything works fine. 

So it seems the problem is when I'm binding to XMLListCollection. 
Binding to an ArrayCollection is behaving as expected. 

This is a workaround, but there shouldn't be a problem when using
XMLListCollections, I'm guessing?



--- code ---
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";
layout="absolute" creationComplete="init()">

<mx:Script>
        <![CDATA[
                import mx.rpc.http.HTTPService;
                import mx.collections.ArrayCollection;
                import mx.rpc.events.ResultEvent;
        
                [Bindable]
                private var leftXML:XML;
                [Bindable]
                private var rightXML:XML;
                
                private var rightArray:Array = new Array();
                private var leftArray:Array = new Array();
                
                [Bindable]
                private var lac:ArrayCollection;
                [Bindable]
                private var rac:ArrayCollection;
                
                private function init():void{
                        getE4X();
                }
                
                private function getE4X():void{
                        var feedUrl:String = new
String("file:///C:/TestListMoves/xml/lefthand.xml");
                        var loader2:HTTPService = new HTTPService();
                        loader2.method = "POST";
                        loader2.url = feedUrl;
                        loader2.resultFormat = "e4x";
                        loader2.requestTimeout = 10;
                        loader2.addEventListener(ResultEvent.RESULT, 
doLeftLoaded);
                        loader2.send();
                }
                
                private function doLeftLoaded(event:ResultEvent):void{
                        leftXML = new XML(event.result);
                        var x:XML;
                        for each (x in leftXML.item){
                                leftArray.push(x);
                        }                       
                        lac = new ArrayCollection(leftArray);
                        
                        loadRight();
                }
                
                private function loadRight():void{
                        var feedUrl:String = new
String("file:///C:/TestListMoves/xml/righthand.xml");
                        var loader2:HTTPService = new HTTPService();
                        loader2.method = "POST";
                        loader2.url = feedUrl;
                        loader2.resultFormat = "e4x";
                        loader2.requestTimeout = 10;
                        loader2.addEventListener(ResultEvent.RESULT, 
doRightLoaded);
                        loader2.send();
                }
                private function doRightLoaded(event:ResultEvent):void{
                        rightXML = new XML(event.result);
                        var x:XML;
                        for each (x in rightXML.item){
                                rightArray.push(x);
                        }                       
                        rac = new ArrayCollection(rightArray);
                }
                
                
        ]]>
</mx:Script>

        <mx:List x="97" y="135" id="leftList" dataProvider="{lac}" 
                height="409" dragEnabled="true" dragMoveEnabled="true"
dropEnabled="true" labelField="@name"></mx:List>

        <mx:List x="379" y="135" id="rightList" dataProvider="{rac}" 
                height="409" dragEnabled="true" dragMoveEnabled="true"
dropEnabled="true" labelField="@name"></mx:List>

        <mx:Button x="147" y="53" label="trace"
click="trace(leftList.dataProvider + &quot;\n&quot; + leftXML + '\n')"/>

        <mx:Button x="427" y="53" label="trace"
click="trace(rightList.dataProvider + &quot;\n&quot; + rightXML + '\n')"/>
        
</mx:Application>
-- code--

Reply via email to