On Wed, Jul 2, 2008 at 6:29 PM, Tracy Spratt <tsp.......com> wrote: > I advise using resultFormat="e4x", a result handler function, and an > instance variable to hold the xmlResult.
I started out using e4x until I ran into what I think is a bug: https://bugs.adobe.com/jira/browse/SDK-15976 DataTips in mx:LineChart does not like the e4x format. I guess I should go back to using e4x and write a custom dataTipFunction that actually works. -Steve > The best performance, especially in a multi-renderer DataGrid, will be if > you manually convert the XML node data ino an ArrayCollection of strongly > typed value objects. > > > > Tracy > > > > ________________________________ > > From: [email protected] [mailto:[EMAIL PROTECTED] On > Behalf Of Sean Clark Hess > Sent: Wednesday, July 02, 2008 4:05 PM > To: [email protected] > Subject: Re: [flexcoders] Inspecting data from HTTPService result to an > ArrayCollection > > > > Ah, got it. > > The <mx:Model> tag converts everything to a flat object. So the minute you > use it, you no longer have xml. > > It's still easy enough to loop through though. > > var result:Object = myData.getItemAt(0); > for (var name:String in result) > { > trace(name + " :: " + result[name]); > } > > should output > apple :: 81768 > orange :: 60310 > banana :: 43357 > > On Wed, Jul 2, 2008 at 1:46 PM, Stephen More <[EMAIL PROTECTED]> wrote: > > Here is my output: > > DEBUG: 2 null > [object Object] > CHECK : false > CHECK : false > > Here is all the code: > <?xml version="1.0"?> > <!-- charts/XMLFileToArrayCollectionDataProvider.mxml --> > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" > width="100%" height="100%"> > <mx:Script> > import mx.utils.ArrayUtil; > </mx:Script> > > <mx:Model id="results" source="../assets/data.xml"/> > <mx:ArrayCollection id="myData" > source="{ArrayUtil.toArray(results.result)}" > /> > > <mx:Panel title="Line Chart"> > <mx:LineChart id="chart" dataProvider="{myData}" showDataTips="true"> > <mx:horizontalAxis> > <mx:CategoryAxis categoryField="month"/> > </mx:horizontalAxis> > <mx:series> > <mx:LineSeries yField="banana" displayName="Banana"/> > <mx:LineSeries yField="apple" displayName="Apple"/> > <mx:LineSeries yField="orange" displayName="Orange"/> > </mx:series> > </mx:LineChart> > > <mx:Button id="iconButton" label="Button with Icon" > labelPlacement="right" color="#993300" > click="printMessage(event);"/> > > <mx:Script> > <![CDATA[ > > import flash.events.Event; > > // Event handler function to print a message > // describing the selected Button control. > private function printMessage(event:Event):void { > //message.text += event.target.label + " pressed" + "\n"; > > var myXML:XML; > myXML = myData.getItemAt(0) as XML; > > trace( "DEBUG: " + myData.length + " " + myXML ); > trace( myData.getItemAt(0) ); > > trace("CHECK : " + (myData.getItemAt(0) is XML)); > > trace("CHECK : " + (myData.getItemAt(0) is XMLList)); > } > > ]]> > </mx:Script> > > </mx:Panel> > </mx:Application> > > On Wed, Jul 2, 2008 at 3:34 PM, Sean Clark Hess <[EMAIL PROTECTED]> wrote: >> What do you get when you trace myData.getItemAt(0)? That will return null >> if it isn't an XML. You can do this too: >> >> trace("CHECK : " + (myData.getItemAt(0) is XML)); >> >> You can check to see if it is an XMLList too, but I thought looking at it, >> it seemed like a flat xml. >> >> On Wed, Jul 2, 2008 at 1:32 PM, Stephen More <[EMAIL PROTECTED]> >> wrote: >>> >>> Thats what I was thinking but when I try: >>> >>> var myXML:XML; >>> myXML = myData.getItemAt(0) as XML; >>> trace( "DEBUG: " + myXML ); >>> >>> I get >>> DEBUG: null >>> >>> On Wed, Jul 2, 2008 at 2:30 PM, Sean Clark Hess <[EMAIL PROTECTED]> >>> wrote: >>> > Each row is an xml object... >>> > >>> > So, (myData.getItemAt(i) as XML).children() >>> > >>> > Then you could loop through the children and ask them for their name. >>> > After >>> > the as XML step you can do anything you can normally do with the XML >>> > object >>> > >>> > On Wed, Jul 2, 2008 at 12:11 PM, Stephen More <[EMAIL PROTECTED]> >>> > wrote: >>> >> >>> >> ( Example code taken from: >>> >> http://livedocs.adobe.com/flex/201/html/charts_intro_108_12.html ) >>> >> Here is the dataset I am trying to work with: >>> >> >>> >> <data> >>> >> <result month="Jan-04"> >>> >> <apple>81768</apple> >>> >> <orange>60310</orange> >>> >> <banana>43357</banana> >>> >> </result> >>> >> <result month="Feb-04"> >>> >> <apple>81156</apple> >>> >> <orange>58883</orange> >>> >> <banana>49280</banana> >>> >> </result> >>> >> </data> >>> >> >>> >> The flex code will look like this: >>> >> <mx:HTTPService >>> >> id="srv" >>> >> url="../assets/data.xml" >>> >> useProxy="false" >>> >> result="myData=ArrayCollection(srv.lastResult.data.result)" >>> >> /> >>> >> >>> >> How can I interrogate the ArrayCollection named myData so that it will >>> >> return apple, orange, and banana ? >>> >> I am not looking to get the numerical values, I want to get the xml >>> >> name. >>> >> >>> >> -Thanks >>> >> Steve More >>> > >>> > >> >> > > > >

