what is the object that you have that you want to convert as an instance of
ArrayCollection? is it an Array?
Regards,
Arul
On Tue, Oct 7, 2008 at 6:53 AM, kiril <[EMAIL PROTECTED]> wrote:
>
> I need to convert from obj:Object to strongly typed object.
>
> I am using the following code and it works fine besides the fact that
> it will not work for ArrayCollections
>
> Here is my code which converts from plain object to strongly typed
> object:
>
> public static function objectToInstance( object:Object,
> clazz:Class ):*
> {
> var bytes:ByteArray = new ByteArray();
>
> bytes.objectEncoding = ObjectEncoding.AMF0;
>
> // Find the objects and byetArray.writeObject them, adding
> in the
> // class configuration variable name -- essentially, we're
> constructing
> // and AMF packet here that contains the class information
> so that
> // we can simplly byteArray.readObject the sucker for the
> translation
>
> // Write out the bytes of the original object
> var objBytes:ByteArray = new ByteArray();
> objBytes.objectEncoding = ObjectEncoding.AMF0;
> objBytes.writeObject( object );
>
> // Register all of the classes so they can be decoded via
> AMF
> var typeInfo:XML = describeType( clazz );
> var fullyQualifiedName:String =
> [EMAIL PROTECTED]().replace( /::/, "." );
> registerClassAlias( fullyQualifiedName, clazz );
>
> // Write the new object information starting with the class
> information
> var len:int = fullyQualifiedName.length;
> bytes.writeByte( 0x10 ); // 0x10 is AMF0 for "typed object
> (class
> instance)"
> bytes.writeUTF( fullyQualifiedName );
> // After the class name is set up, write the rest of the
> object
> bytes.writeBytes( objBytes, 1 );
>
> // Read in the object with the class property added and
> return that
> bytes.position = 0;
>
> // This generates some ReferenceErrors of the object being
> passed in
> // has properties that aren't in the class instance, and
> generates
> TypeErrors
> // when property values cannot be converted to correct
> values (such
> as false
> // being the value, when it needs to be a Date instead).
> However,
> these
> // errors are not thrown at runtime (and only appear in
> trace ouput
> when
> // debugging), so a try/catch block isn't necessary. I'm
> not sure
> if this
> // classifies as a bug or not... but I wanted to explain why
> if you
> debug
> // you might seem some TypeError or ReferenceError items
> appear.
> var result:* = bytes.readObject();
>
> return result;
> }
>
> Thanks for Darron Schall for the code.
>
> It works great for all the properties besides ArrayCollection
>
> >
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Flex
India Community" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/flex_india?hl=en
-~----------~----~----~----~------~----~------~--~---