Highlighted

Messaging w/ Complex Data Types

Avatar

Avatar

r_schmitt-lwkPI

Avatar

r_schmitt-lwkPI

r_schmitt-lwkPI

09-09-2008

Hey everyone,



I'm having issues trying to pass complex data type objects I
created using the BlazeDS messaging service.



To be more exact, I have an AC3 class "Cargo" that I wrote
that contains only five public properties of type 'String':
contents, length, width, height, and weight. The application I
wrote allows the user to enter these properties using text input
components, and then publishes the Cargo object through the
Producer.send() function.



Below is the pertinent code:



private function sendMessage():void {

var message:AsyncMessage = new AsyncMessage();

messageObj.contents = ti_contents.text; //messageObj is of
type 'Cargo'

messageObj.length = ti_length.text; //ti stands for
TextInput, as I am grabbing the user's input.

messageObj.width = ti_width.text;

messageObj.height = ti_height.text;

messageObj.weight = ti_weight.text;

message.body = messageObj;

producer.send( message );

}



private function messageHandler( event:MessageEvent ):void {

messageObj = Cargo( event.message.body ); //TYPE COERCION
ERROR HERE!!!!

}





The sending and receiving work fine, I'm having no issues
getting the messaging service to work. However, when I cast the
'event.message.body' as type 'Cargo' I get a type coercion error.



I cannot find help with this anywhere as all the examples use
Strings or other primitive types.



Any suggestions on how to get this to work?

Replies

Highlighted

Avatar

Avatar

riesvantwisk

Avatar

riesvantwisk

riesvantwisk

11-09-2008



I have never done it like that, but using Blaze-DS and remove
objects you can try this?



private function messageHandler( event:MessageEvent ):void {

Cargo = vent.message.body as Cargo;

}





Ries



Highlighted

Avatar

Avatar

r_schmitt-lwkPI

Avatar

r_schmitt-lwkPI

r_schmitt-lwkPI

11-09-2008

thanks for the reply reis, but because there is a type
coercion error between the event.message.body of type Object and my
messageObj of type Cargo, if I try the "as" operator it just
returns null.



Any other ideas?