Thanks for the explantion Peter. That really helps.
Mehdi thanks for yet another Tip.
It works in FLEX.

Mohanraj


--- "Mehdi, Agha" <[EMAIL PROTECTED]> wrote:

> Thanks Peter for the explanation. That explains it.
> I am glad it worked
> Mohanraj.
> 
> There's one more way of doing it without having to
> specify the other
> argument.
> 
> var  testObject = new Array(); // it has to be an
> array. It won't work if
> you did new Object()
> 
> testObject["var1"] = "var1";
> testObject["var2"] = "var2"
> 
> remoteObject.cfFunction ( testObject );
> 
> <cffunction name="cfFunction" access="remote">
>     <cfargument name="testObject" type="struct">
> </cffunction>
> 
> It works in Flash. Haven't tried it on Flex but
> shouldn't have any problems.
> It is simple if all you want to pass is an object
> with some properties
> instead of sending over a class.
> 
> 
> -----Original Message-----
> From: Peter Farland [mailto:[EMAIL PROTECTED]
> 
> Sent: Friday, March 25, 2005 11:25 AM
> To: [email protected]
> Subject: RE: [flexcoders] How to pass AS Objects to
> a CFC
> 
> 
> The history of this problem stems way back from
> Flash Remoting in ColdFusion
> 6.0.
> 
> ActionScript 1.0 APIs for Flash Remoting introduced
> "named arguments"
> for CF-based invocation. The syntax for passing
> named arguments was usually
> listed like this in documentation:
> 
> myCFService.cfFunction({var1:"foo",var2:"bar"});
> 
> 
> Which was intended to match a CFC API:
> 
> <cffunction name="cfFunction" access="remote">
>     <cfargument name="var1">
>     <cfargument name="var2">
> </cffunction>
>  
> The {} syntax, however, really just means an untyped
> Object, so this
> invocation information is lost once it is serialized
> over AMF.
> 
> But AMF isn't the real issue - the Flash Remoting
> gateway can't adapt
> accordinly as it can't get the necessary CFC API or
> argument type
> information from the CFC function before invoking it
> (a limitation in CF),
> so now it has a problem - how would it know that
> you're passing a single
> struct or named arguments?
> 
> To disambiguate you use either of the two approaches
> that Mehdi described.
> 
> 
> -----Original Message-----
> From: Mohanraj Jayaraman
> [mailto:[EMAIL PROTECTED]
> Sent: Friday, March 25, 2005 2:12 PM
> To: [email protected]
> Subject: RE: [flexcoders] How to pass AS Objects to
> a CFC
> 
> 
> WOW! It works Mehdi. As you pointed out the second
> variable passed in the CFC function call did the
> magic! If possible, an explanation on why it works
> with the second variable will be more useful Mehdi. 
> 
> My guess is that one should have good knowledge of
> Flash/ActionScript before venturing into doing any
> complex stuff with FLEX. 
> 
> Thanks a lot sharing this.
> 
> Mohanraj
> 
> 
> 
> 
> 
> --- "Mehdi, Agha" <[EMAIL PROTECTED]> wrote:
> 
> > Mohanraj,
> > 
> > I learned it the hard way. There are two ways to
> do
> > it.
> > 
> > 1.
> > Flex side:
> > 
> > var toPass = new MyClass();
> > 
> > toPass.var1 = "value";
> > toPass.var2 = "value";
> > 
> > remoteObject.cfFunction ( toPass );
> > 
> > CF Side:
> > 
> > <cffunction name="cfFunction" access="remote">
> >     <cfargument name="var1">
> >     <cfargument name="var2">
> > </cffunction>
> > 
> > I'm sure it's not acceptable.
> > 
> > 2.
> > Flex Side:
> > 
> > var toPass = new MyClass();
> > 
> > toPass.var1 = "value";
> > toPass.var2 = "value";
> > 
> > remoteObject.cfFunction ( toPass, true );
> > 
> > CF Side:
> > 
> > <cffunction name="cfFunction" access="remote">
> >     <cfargument name="toPass">
> > </cffunction>
> > 
> > That works beautifully. The second arg from Flex
> > doesn't have to be a
> > boolean but it just easy to type.
> > 
> > Please let me know if that works.
> > 
> > -----Original Message-----
> > From: Mohanraj Jayaraman
> > [mailto:[EMAIL PROTECTED] 
> > Sent: Thursday, March 24, 2005 10:37 AM
> > To: [email protected]
> > Subject: RE: [flexcoders] How to pass AS Objects
> to
> > a CFC
> > 
> > 
> > Hi Dirk,
> > 
> > Thanks for your suggestion. But my condition
> differs
> > from your example.
> > 
> > Lets assume I had an AS Class 'MyClass.as'
> > I am trying to do something like this in my MXML
> >   var o:Object = new MyClass();
> >   I build an 'array of structures' in MyClass
> Object
> > and I do pass the
> > complex Object as input with another Object
> wrapper.
> > 
> > Here's an example by Macromedia on how exchange
> > complex data
> > 
> >
>
http://www.macromedia.com/devnet/flex/articles/complex_data_03.html
> > 
> > According to macromedia
> > When invoking methods remotely, you can pass
> objects
> > back and forth (as the
> > methods' input parameters and return value)
> between
> > the client and the
> > server.
> > 
> > This example is explained with Java and I am
> trying
> > to replicate the same
> > with Coldfusion CFC's.
> > 
> > Thanks,
> > Mohanraj
> > 
> > 
> > 
> 
=== message truncated ===



                
__________________________________ 
Do you Yahoo!? 
Yahoo! Small Business - Try our new resources site!
http://smallbusiness.yahoo.com/resources/ 


 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/flexcoders/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 



Reply via email to