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
-~----------~----~----~----~------~----~------~--~---

Reply via email to