If you are using Java on the server, consider RemoteObject for the RPC protocol. You can pass objects directly into the client, without any manual loop or conversion by registering the class in Flex. I do not do any of this so I can't be more specific.
Tracy ________________________________ From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of oneworld95 Sent: Thursday, October 30, 2008 11:49 AM To: [email protected] Subject: [flexcoders] Re: Read XML data in as ArrayCollection Thanks, Tracy. I have a similar Premium class on the server side with Java so it's a good idea to do the same on the client with Flex. Now on to more coding and debugging :) --- In [email protected] <mailto:flexcoders%40yahoogroups.com> , "Tracy Spratt" <[EMAIL PROTECTED]> wrote: > > Yes, "MyVO" would be a custom object that uses strongly typed > properties. This approach it the ideal from a performance standpoint, > since access of strongly typed property values is significantly faster > that either dynamic object properties, or XML. > > > > The blog example you referenced in the other post produces an > ArrayCollection of XML nodes. While this is ok, it kinda does not make > much sense. If XML is ok for the items in the collection, just use > XMLListCollection. A loop is not necessary. But this does not provide > the advantages of a VO (ValueObject), which, in addition to the > performance benefits, allows you to have calculated fields, and special > methods like the "fill" method I alluded to earlier. > > > > Note, I use XML almost always, unless I need special work in the item > object. I have not had any performance issues with XML. This is > usually reported when scrolling with hundreds of visible itemrenderers > > > > Tracy > > > > ________________________________ > > From: [email protected] <mailto:flexcoders%40yahoogroups.com> [mailto:[email protected] <mailto:flexcoders%40yahoogroups.com> ] On > Behalf Of oneworld95 > Sent: Tuesday, October 28, 2008 3:50 PM > To: [email protected] <mailto:flexcoders%40yahoogroups.com> > Subject: [flexcoders] Re: Read XML data in as ArrayCollection > > > > What is the "MyVO"? Is that a custom object class? Thanks. > > --- In [email protected] <mailto:flexcoders%40yahoogroups.com> <mailto:flexcoders%40yahoogroups.com> > , "Tracy Spratt" <tspratt@> wrote: > > > > Please, do, the default resultFormat is evil ;) > > > > > > > > Here is a quick, untested start. > > > > _acPremiums = new ArrayCollection() > > > > var xmlResult:XML = XML(event.result); > > > > var xlPremiums:XMLList = xmlResult.premium; //or xmlResult.children(); > > > > var xmlPremium:XML > > > > var voNew:MyVO; > > > > for () var i:int=0;i<xlPremiums.length();i++) { > > > > xmlPremium = xlPremiums[i]; > > > > voNew = new MyVO; > > > > voNew.fill(xmlPremium); //assumes a fill method. You could also > > simply assign the vo properties here > > > > _acPremiums.addItem(voNew); > > > > } > > > > > > > > Tracy > > > > > > > > > > > > ________________________________ > > > > From: [email protected] <mailto:flexcoders%40yahoogroups.com> <mailto:flexcoders%40yahoogroups.com> > [mailto:[email protected] <mailto:flexcoders%40yahoogroups.com> <mailto:flexcoders%40yahoogroups.com> > ] On > > Behalf Of oneworld95 > > Sent: Tuesday, October 28, 2008 2:55 PM > > To: [email protected] <mailto:flexcoders%40yahoogroups.com> <mailto:flexcoders%40yahoogroups.com> > > Subject: [flexcoders] Re: Read XML data in as ArrayCollection > > > > > > > > Hi, Tracy. Hadn't thought about that. I'll work on implementing your > > suggestion. Thanks. > > > > --- In [email protected] <mailto:flexcoders%40yahoogroups.com> > <mailto:flexcoders%40yahoogroups.com> > <mailto:flexcoders%40yahoogroups.com> > > , "Tracy Spratt" <tspratt@> wrote: > > > > > > That only works because the default resultFormat causes Flex to > cnvert > > > your xml into a nested structure of dynamic objects. One result of > is > > > is that child groups are converted to Array. > > > > > > > > > > > > I advise you do not do this. You lose the benefits of e4x > expressions, > > > and wind up with loosely typed objects everywhere. The conversion > > > always happens, so you do not gain any performance. Also the > > conversion > > > modifies your data, turning strings into numbers where it can, and > > stuff > > > like that. > > > > > > > > > > > > You will be better served in the long run if you simply loop over > the > > > XMLList and assign the attribute or child values to an instance of a > > > strongly typed value object. > > > > > > > > > > > > Tracy > > > > > > > > > > > > > > > > > > > > > > > > ________________________________ > > > > > > From: [email protected] <mailto:flexcoders%40yahoogroups.com> > <mailto:flexcoders%40yahoogroups.com> > <mailto:flexcoders%40yahoogroups.com> > > [mailto:[email protected] <mailto:flexcoders%40yahoogroups.com> > <mailto:flexcoders%40yahoogroups.com> > <mailto:flexcoders%40yahoogroups.com> > > ] On > > > Behalf Of oneworld95 > > > Sent: Tuesday, October 28, 2008 2:19 PM > > > To: [email protected] <mailto:flexcoders%40yahoogroups.com> <mailto:flexcoders%40yahoogroups.com> > <mailto:flexcoders%40yahoogroups.com> > > > Subject: [flexcoders] Re: Read XML data in as ArrayCollection > > > > > > > > > > > > Never mind! Figured it out: > > > > > > arrCol = event.result.premiums.premium as ArrayCollection > > > > > > Also took off the resultFormat from the HTTPService call. > > > > > > --- In [email protected] <mailto:flexcoders%40yahoogroups.com> > <mailto:flexcoders%40yahoogroups.com> > > <mailto:flexcoders%40yahoogroups.com> > > <mailto:flexcoders%40yahoogroups.com> > > > , "oneworld95" <oneworld95@> wrote: > > > > > > > > Hi. I've got a Flex app that receives XML (resultFormat = "e4x") > > data > > > > from a servlet in this format, > > > > > > > > <premiums> > > > > <premium id="ABCDEF01" startcount="0" currentcount="0"> > > > > <category>CD</category> > > > > <description>The CD Description</description> > > > > <image id="3095"> > > > > <filename>ABCDEF01__1225202763673.jpg</filename> > > > > </image> > > > > </premium> > > > > <premium id="DEFGH01" startcount="0" currentcount="0"> > > > > <category>DVD</category> > > > > <description>DVD Description</description> > > > > <image id="3078"> > > > > <filename>DEFGH01__1225132169948.jpg</filename> > > > > </image> > > > > </premium> > > > > </premiums> > > > > > > > > I need to convert it to an ArrayCollection and then an array to > > > > manipulate the results (using the slice method). Any solutions? > > > Thanks. > > > > > > > > > >

