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:
Hmm might be missing something here but Joe's suggestion in http://www.mail-archive.com/flexcoders@yahoogroups.com/msg09275.html
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.

 

-----Original Message-----
From: JesterXL [mailto: jesterxl@jessewarden.com]
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:
 
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" < 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 --------------------~-->
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
Web site design development Computer software development Software design and development
Macromedia flex Software development best practice


YAHOO! GROUPS LINKS




Reply via email to