I have an ActionScript class that creates a custom Review object, like so: ///// Review.as ///// Taken from one of Adobe's online samples package samples.restaurant { import mx.formatters.DateFormatter;
////// [RemoteClass(alias="samples.restaurant.Review")] [Bindable] public class Review { public function Review(source:Object=null) { // some date formatting stuff happens here } public var restaurantId:int; public var restaurantName:String; public var restaurant:Object; public var reviewDate:Date; public var reviewer:String; public var rating:Number; public var title:String; public var reviewText:String; public var email:String; } } This class lets me take an ArrayCollection of generic Objects from the server, loop through it with something like "new Review(source[i])" and get a bunch of Review objects in an ArrayCollection. Works perfectly. I also need to be able to write a Review object (a Java object) to the server, so I add "[RemoteClass(alias="samples.restaurant.Review")]" above the ActionScript class declaration. This way I can declare a "public var review:Review", call an "addReview(review)" on my RemoteObject service, and my server receives a Review Java object. This works perfectly too. The problem is that once I add this "[RemoteClass(alias="...")]" line, doing "new Review(source[i])" no longer works as expected. Given the same ArrayCollection of generic Objects as before, "new Review(source[i])" will still create a Review object, but now all its properties are null. If I comment out the "[RemoteClass(alias="...")]" line I can properly cast generic objects to Review objects again (but then I am no longer able to send a Review Java object to the server). Is this the way it's supposed to work? (I hope I've stated my problem clearly.) How can I accomplish both tasks using a single Review.as class? Thanks for any help, folks. John PS. I am using the Flex 3.5 SDK.