I needed cloning with inheritance one time. I did it this way. Worked perfectly...
*************** ValueObject ************ class ValueObject{ public function clone (parent:ValueObject):ValueObject{ var clone:ValueObject= new ValueObject(); return cloneParams(clone,parent); } public function cloneParams (clone:ValueObject, parent:ValueObject):ValueObject{ clone.setParent(parent); return clone; } private function cloneValueObjectArray (arrVOs:Array, parent:ValueObject){ var cloneArray = undefined; if (arrVOs != undefined){ cloneArray = new Array(); for (var i=0;i<arrVOs.length;i++) { if (arrVOs[i] != undefined){ var voClone:ValueObject = ValueObject(arrVOs[i]).clone(parent); cloneArray.push(voClone); }else{ cloneArray.push(arrVOs[i]); } } } return cloneArray; } } *************************** And in a subclass you do something like this: ************** SubClass: ************ ... public function clone(parent:ValueObject):ValueObject{ var clone:ValueObject= new SubClass(); return cloneParams(clone,parent); } public function cloneParams (clone:ValueObject,parent:ValueObject):ValueObject{ clone = SubClass(super.cloneParams(clone,parent)); SubClass (clone).type = this.type; SubClass (clone).name = this.name; SubClass (clone).productID = this.productID; SubClass (clone).pages = cloneValueObjectArray(arrValueObjects,clone); return clone; } ... ************************ > -----Ursprüngliche Nachricht----- > Von: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] Im > Auftrag von JesterXL > Gesendet: Donnerstag, 1. Dezember 2005 16:17 > An: flexcoders@yahoogroups.com > Betreff: Re: [flexcoders] instanceof on Object > > I just wrote clone methods. I need a true copy, so ensured each was made > correctly. Easy for the simple ones (like Flex 2 events), harder for ones > with arrays full of objects. I haven't figured out inheritanced yet, but > since these VO's are strictly for the server guy and I to effectively > communicate, they work well enough. Inheritance is for another day... > > class VO > { > public var id:String; > public var name:String; > > public function clone():VO > { > var vo:VO = new VO(); > vo.id = id; > vo.name = name; > return vo; > } > } > > > One for arrays: > > class Item > { > public var id:String; > public var itemLabel:String; > > public function clone():Item > { > var i:Item = new Item(); > item.id = id; > item.itemLabel = itemLabel; > return item; > } > } > > class MajorVO > { > public var otherLabel:String; > public var item_array:Array; > > public function clone():MajorVO > { > var mvo:MajorVO = new MajorVO(); > mvo.otherLabel = otherLabel; > var i:Number = item_array.length; > mvo.item_array = []; > while(i--) > { > var old:Item = Item(item_array[i]); > var ni:Item = old.clone(); > mvo.item_array[i] = ni; > } > return mvo; > } > } > ----- Original Message ----- > From: Clint Modien <mailto:[EMAIL PROTECTED]> > To: flexcoders@yahoogroups.com > Sent: Thursday, December 01, 2005 9:51 AM > Subject: Re: [flexcoders] instanceof on Object > > hey Jess... interested to know about the solution you went with on > this... > > > On 11/30/05, Paul Frantz <[EMAIL PROTECTED]> wrote: > > Hmm might be missing something here but Joe's suggestion in > http://www.mail-archive.com/flexcoders@yahoogroups.com/msg09275.html > works ok. > > eg.. > > Fred.as <http://fred.as/> > > class > > Fred { > > > > public function Fred() {} > > } > > App.mxml > > <mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml > <http://www.macromedia.com/2003/mxml> " > xmlns="*" > initialize="myInitialize()" > > > <mx:Script> > <![CDATA[ > import Fred; > > var f:Fred; > > function myInitialize():Void > { > f = new Fred(); > > var g = Object(f); > var _t; > > _t = new g.__constructor__(); > > trace("_t instanceof Fred = " + (_t instanceof Fred)); > } > ]]> > </mx:Script> > </mx:Application> > > ... produces 'true' for me. > Cheers, > Paul. > > > > > -----Original Message----- > From: JesterXL [mailto: [EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]> ] > Sent: Thursday, 1 December 2005 05:55 > To: flexcoders@yahoogroups.com > Subject: Re: [flexcoders] instanceof on Object > > > > mx.utils.ObjectCopy does not do deep copies, nor work right: > http://www.mail- > archive.com/flexcoders@yahoogroups.com/msg09275.html > > She's got array's in her too, so that definately rules in it, > and I need prototype integrity (subclass vs. superclass). > > > ----- Original Message ----- > From: Clint Modien <mailto:[EMAIL PROTECTED]> > To: flexcoders@yahoogroups.com > Sent: Wednesday, November 30, 2005 2:09 PM > Subject: Re: [flexcoders] instanceof on Object > > > http://www.mail-archive.com/cgi- > bin/htsearch?config=flexcoders_yahoogroups_com&restrict=&exclude=&words=mx > .utils.ObjectCopy <http://www.mail-archive.com/cgi- > bin/htsearch?config=flexcoders_yahoogroups_com&restrict=&exclude=&words=mx > .utils.ObjectCopy+> > > > > > On 11/30/05, JesterXL <[EMAIL PROTECTED] > wrote: > > ...I guess I'll have to implement a clone method on all > of my VO's. Any > other solution/hack? > > ----- Original Message ----- > From: "JesterXL" <[EMAIL PROTECTED]> > To: "Flexcoders" < flexcoders@yahoogroups.com > <mailto:flexcoders@yahoogroups.com> > > Sent: Wednesday, November 30, 2005 1:40 PM > Subject: [flexcoders] instanceof on Object > > > I have some VO's, and I use their class type to render a > form. My Dialogue > I'm passing this VO into is bound to an object, like so: > > private var formData:Object; > > <mx:TextInput text="{formData.label}" /> > > When I call this method externally: > > myDialogue.setFormData(someVO); > > Function looks something like this: > > function setFormData(o) > { > for(var p in o) > { > formData[p] = o[p]; > } > } > > My bindings work great. However, instanceof does not. > If I do this: > > formData = o; > > It DOES work; naturally because it's just a reference. > However, this > dialogue works like a preferences. As such, I need to > create my own local > copy; the above for loop is actually more involved since > I need a deep copy, > and thus get a true, deep copy, not a reference. > > However, this in turn breaks my instanceof code. I've > tried: > > formData.__proto__ = o.prototype > formData.__proto__ = o.__proto__ > > ...none of which work. Frankly, I really don't care > formData is truly a > sub-class, I just want my instanceof to work, even if > it's taked. > > ??? > > > > > > -- > Flexcoders Mailing List > FAQ: > http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt > Search Archives: http://www.mail- > archive.com/flexcoders%40yahoogroups.com > Yahoo! Groups Links > > > > > > > > ------------------------ Yahoo! Groups Sponsor --------- > > -- > Flexcoders Mailing List > FAQ: > http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt > Search Archives: http://www.mail- > archive.com/flexcoders%40yahoogroups.com > Yahoo! Groups Links > > > [EMAIL PROTECTED] > > > > > > > > > > > *~~~****DISCLAIMER****~~~* > This e-mail may contain confidential information. If you are > not the intended recipient, please notify the sender immediately and > delete this e-mail from your system. You must not disclose this email to > anyone without express permission from the sender. The contents of all > emails sent to, and received from, Optus may be scanned, stored, or > disclosed to others by Optus at Optus' discretion. Optus has exercised > care to avoid errors in the information contained in this e-mail but does > not warrant that the information is error or omission free. > > > -- > Flexcoders Mailing List > FAQ: > http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt > Search Archives: http://www.mail- > archive.com/flexcoders%40yahoogroups.com > > > > ________________________________ > > YAHOO! GROUPS LINKS > > > > * Visit your group "flexcoders > <http://groups.yahoo.com/group/flexcoders> " on the web. > > * To unsubscribe from this group, send an email to: > [EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]> > > * Your use of Yahoo! Groups is subject to the Yahoo! > Terms of Service <http://docs.yahoo.com/info/terms/> . > > > ________________________________ > > > > > -- > Flexcoders Mailing List > FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt > Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com > > > > > SPONSORED LINKS > Web site design development > <http://groups.yahoo.com/gads?t=ms&k=Web+site+design+development&w1=Web+si > te+design+development&w2=Computer+software+development&w3=Software+design+ > and+development&w4=Macromedia+flex&w5=Software+development+best+practice&c > =5&s=166&.sig=L-4QTvxB_quFDtMyhrQaHQ> Computer software development > <http://groups.yahoo.com/gads?t=ms&k=Computer+software+development&w1=Web+ > site+design+development&w2=Computer+software+development&w3=Software+desig > n+and+development&w4=Macromedia+flex&w5=Software+development+best+practice > &c=5&s=166&.sig=lvQjSRfQDfWudJSe1lLjHw> Software design and development > <http://groups.yahoo.com/gads?t=ms&k=Software+design+and+development&w1=We > b+site+design+development&w2=Computer+software+development&w3=Software+des > ign+and+development&w4=Macromedia+flex&w5=Software+development+best+practi > ce&c=5&s=166&.sig=1pMBCdo3DsJbuU9AEmO1oQ> > Macromedia flex > <http://groups.yahoo.com/gads?t=ms&k=Macromedia+flex&w1=Web+site+design+de > velopment&w2=Computer+software+development&w3=Software+design+and+developm > ent&w4=Macromedia+flex&w5=Software+development+best+practice&c=5&s=166&.si > g=OO6nPIrz7_EpZI36cYzBjw> Software development best practice > <http://groups.yahoo.com/gads?t=ms&k=Software+development+best+practice&w1 > =Web+site+design+development&w2=Computer+software+development&w3=Software+ > design+and+development&w4=Macromedia+flex&w5=Software+development+best+pra > ctice&c=5&s=166&.sig=f89quyyulIDsnABLD6IXIw> > > ________________________________ > > YAHOO! GROUPS LINKS > > > > * Visit your group "flexcoders > <http://groups.yahoo.com/group/flexcoders> " on the web. > > * To unsubscribe from this group, send an email to: > [EMAIL PROTECTED] <mailto:flexcoders- > [EMAIL PROTECTED]> > > * Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service > <http://docs.yahoo.com/info/terms/> . > > > ________________________________ ------------------------ Yahoo! Groups Sponsor --------------------~--> Most low income households are not online. Help bridge the digital divide today! http://us.click.yahoo.com/I258zB/QnQLAA/TtwFAA/nhFolB/TM --------------------------------------------------------------------~-> -- Flexcoders Mailing List FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/flexcoders/ <*> To unsubscribe from this group, send an email to: [EMAIL PROTECTED] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/