How would I go about doing that?  Would I need to null out the transform object 
first before converting to a bytearray?  Here is my object structure I am 
trying to save:

Data
  NodeDatalist (list of nodes like an array)
     Node (think graph or tree vertice)
       Nodedata ( children nodes, parent node) 
       Visualdata ( transform etc)
     Node (think graph or tree vertice)
       Nodedata ( children nodes, parent node) 
       Visualdata ( rendered, transform etc)
     n......    
  Edgedatalist
     Edge(think graph or tree vertice)
       Edgedata ( children nodes, parent node) 
       Visualdata ( rendered, transform etc)
     Edgedata ( children nodes, parent node) 
       Visualdata ( rendered, transform etc)
     n...
  Tree (tree structure data)




 
--- In [email protected], Alex Harui <aha...@...> wrote:
>
> To handle classes like transform, I would come up with a custom encoding for 
> the transform (or skip it entirely as the transform can usually be derived 
> from other properties like scale, x, y, width, height, rotation).  I didn't 
> know you were trying to serialize display objects.  Generally that's not 
> advisable as there is a lot of redundancy and circular references in the 
> properties.  It is better to save away the data they present and some notion 
> of which class to use to present the data.
> 
> Alex Harui
> Flex SDK Developer
> Adobe Systems Inc.<http://www.adobe.com/>
> Blog: http://blogs.adobe.com/aharui
> 
> From: [email protected] [mailto:[email protected]] On 
> Behalf Of flexaustin
> Sent: Friday, October 30, 2009 6:08 PM
> To: [email protected]
> Subject: [flexcoders] Re: bytearray.readObject doesn't convert my objects back
> 
> 
> 
> Alex, first thanks for spending so much time helping me with this.
> 
> How do I handle all the rest? Flex specific classes? Should I monkey patch? 
> See error below my custom object needs to have all this serialized and 
> dematerialized as well.:
> 
> ArgumentError: Error #1063: Argument count mismatch on 
> flash.geom::Transform(). Expected 1, got 0.
> 
> Jason
> 
> --- In [email protected]<mailto:flexcoders%40yahoogroups.com>, Alex 
> Harui <aharui@> wrote:
> >
> > Serialization requires that the constructor handle zero parameters. So just 
> > try:
> >
> > public function DataList(name:String = null)
> >
> >
> > Alex Harui
> > Flex SDK Developer
> > Adobe Systems Inc.<http://www.adobe.com/>
> > Blog: http://blogs.adobe.com/aharui
> >
> > From: [email protected]<mailto:flexcoders%40yahoogroups.com> 
> > [mailto:[email protected]<mailto:flexcoders%40yahoogroups.com>] On 
> > Behalf Of flexaustin
> > Sent: Friday, October 30, 2009 11:42 AM
> > To: [email protected]<mailto:flexcoders%40yahoogroups.com>
> > Subject: [flexcoders] Re: bytearray.readObject doesn't convert my objects 
> > back
> >
> >
> >
> > I don't think so. Its just that it isn't just a generic simple Object or 
> > Array but rather a large Class file which contains other large class files.
> >
> > So imagine saving something like your entire displaylist, but not the 
> > visual just the data behind it.
> >
> > The object I am saving cotains over 100 over objects and these 100 objects 
> > contains a handful of objects.
> >
> > Jason
> >
> > --- In 
> > [email protected]<mailto:flexcoders%40yahoogroups.com><mailto:flexcoders%40yahoogroups.com>,
> >  "seanmcmonahan" <sean@> wrote:
> > >
> > > Do you think the class being dynamic is causing this issue? I ask because 
> > > I have a similar problem with a dynamic class that extends Dictionary. It 
> > > works fine in Flash Player 9.0.28 but not in 10.
> > >
> > > --- In 
> > > [email protected]<mailto:flexcoders%40yahoogroups.com><mailto:flexcoders%40yahoogroups.com>,
> > >  Alex Harui <aharui@> wrote:
> > > >
> > > > Yeah, I think that's because Proxy is an odd beast. It is dynamic and 
> > > > can have "any" property and you're responsible for implementing all 
> > > > those methods that help iterate the object.
> > > >
> > > > Alex Harui
> > > > Flex SDK Developer
> > > > Adobe Systems Inc.<http://www.adobe.com/>
> > > > Blog: http://blogs.adobe.com/aharui
> > > >
> > > > 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 flexaustin
> > > > Sent: Friday, October 30, 2009 9:40 AM
> > > > To: 
> > > > [email protected]<mailto:flexcoders%40yahoogroups.com><mailto:flexcoders%40yahoogroups.com>
> > > > Subject: [flexcoders] Re: bytearray.readObject doesn't convert my 
> > > > objects back
> > > >
> > > >
> > > >
> > > >
> > > > Can't even use an JSON encoding
> > > >
> > > > at com.adobe.serialization.json::JSONEncoder/objectToString()
> > > >
> > > > jason
> > > >
> > > > --- In 
> > > > [email protected]<mailto:flexcoders%40yahoogroups.com><mailto:flexcoders%40yahoogroups.com><mailto:flexcoders%40yahoogroups.com>,
> > > >  "flexaustin" <flexaustin@> wrote:
> > > > >
> > > > > What about using the JSONEncoder and JSONDecoder? Will I have the 
> > > > > same issue?
> > > > >
> > > > > Jason
> > > > >
> > > > >
> > > > >
> > > > > --- In 
> > > > > [email protected]<mailto:flexcoders%40yahoogroups.com><mailto:flexcoders%40yahoogroups.com><mailto:flexcoders%40yahoogroups.com>,
> > > > >  "flexaustin" <flexaustin@> wrote:
> > > > > >
> > > > > > Just realized need return type.
> > > > > >
> > > > > >
> > > > > > --- In 
> > > > > > [email protected]<mailto:flexcoders%40yahoogroups.com><mailto:flexcoders%40yahoogroups.com><mailto:flexcoders%40yahoogroups.com>,
> > > > > >  "flexaustin" <flexaustin@> wrote:
> > > > > > >
> > > > > > > Getting error
> > > > > > > 1144: Interface method readExternal in namespace 
> > > > > > > flash.utils:IExternalizable is implemented with an incompatible 
> > > > > > > signature
> > > > > > >
> > > > > > >
> > > > > > > public class Data extends EventDispatcher implements 
> > > > > > > IExternalizable
> > > > > > >
> > > > > > > public function writeExternal(output:IDataOutput) {
> > > > > > > output.writeObject(_nodes);
> > > > > > > output.writeObject(_edges);
> > > > > > > output.writeObject(_span);
> > > > > > > output.writeObject(_groups);
> > > > > > > output.writeObject(_root);
> > > > > > > output.writeObject(_tree);
> > > > > > > }
> > > > > > > public function readExternal(input:IDataInput) {
> > > > > > > _nodes = input.readObject();
> > > > > > > _edges = input.readObject();
> > > > > > > _span = input.readObject();
> > > > > > > _groups = input.readObject();
> > > > > > > _root = input.readObject();
> > > > > > > _tree = input.readObject();
> > > > > > > }
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>


Reply via email to