|
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 -----
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:
works ok.
eg..
class Fred {
public function Fred() {}
}
App.mxml
<mx:Application xmlns:mx="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.
mx.utils.ObjectCopy does not do deep copies,
nor work right:
She's got array's in her too, so that
definately rules in it, and I need prototype integrity (subclass vs.
superclass).
----- Original Message -----
Sent: Wednesday, November 30, 2005 2:09 PM
Subject: Re: [flexcoders] instanceof on Object
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" <
[email protected]> 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 --------------------~--> Fair play? Video games
influencing politics. Click and talk back! http://us.click.yahoo.com/2jUsvC/tzNLAA/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/
*~~~****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
--
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
YAHOO! GROUPS LINKS
|