Thats not how remoting works. By sending an object to the server, the
gateway translates it into a or many structures that is in the argument
scope of CF.

to pass a string to a CFC do this:

public function sendToCFC():void{
    var cfObj:Object = {input:source.text};
    myFlashRemote.echoString(cfObj);
}

Now what this does is send an AS object through the gateway that will inturn
translate this into a structure with input as an argument with the value of
the send textfield's text.

Now, when you return something from the CFC, its best to bind that to a
Bindable variable.
In this case I would create a bindable var called returnString:String and in
my result function do this.

public function setReturnString(event:ResultEvent):void{
   returnString = event.result as String;
}

To get to the result of your CFC call, a result function needs to be
specified or else the app will not know what to do with the result.

Here is your code changed to show how it all works.

<?xml version="1.0" encoding="utf-8"?>
<mx:ApolloApplication xmlns:mx="http://www.adobe.com/2006/mxml";
layout="absolute" pageTitle="Flex Remoting Example">
   <mx:Script>
       <![CDATA[
           import mx.rpc.events.ResultEvent;

           [Bindable]
           public var resultString:String;

           public function sendToCFC():void{
                var cfObj:Object = {input:send.text};
                myFlashRemote.echoString(cfObj);
           }

           public function setReturnString(event:ResultEvent):void{
               returnString = event.result as String;
           }
       ]]>
   </mx:Script>
   <mx:RemoteObject id="myFlashRemote" destination="ColdFusion"
source="test" endpoint="http://demo.dev/flex2gateway/";>
       <mx:method name="echoString" result="setReturnString(event)"/>
   </mx:RemoteObject>

   <mx:Button x="141" y="280" label="Button" click="sendToCFC()" />

   <mx:TextArea id="source" width="356" height="201" text="{resultString}"
x="10" y="10"/>

   <mx:TextInput x="101" y="229" id="send" text="Hello out there,"/>

</mx:ApolloApplication>

On 22 Mar 2007 07:02:11 -0700, rchadgray <[EMAIL PROTECTED]> wrote:

  Ok now I am starting to break down Clint's example so I understand
what is going on. I tossed out the AS just to kind of make me
understand how the tags are working together.

My question now is why cant I do this in my button click event:
myFlashRemote.echoString({send.text})"

Here is my current code and it works, but I want the text entered
into the TextInput tag to be passed to the remote object. Right now
I have static text in myFlashRemote.echoString()

<?xml version="1.0" encoding="utf-8"?>
<mx:ApolloApplication xmlns:mx="http://www.adobe.com/2006/mxml";
layout="absolute" pageTitle="Flex Remoting Example">

<mx:RemoteObject id="myFlashRemote" destination="ColdFusion"
source="test" endpoint="http://demo.dev/flex2gateway/";>
<mx:method name="echoString" />
</mx:RemoteObject>

<mx:Button x="141" y="280" label="Button"
click="myFlashRemote.echoString('a232322323')" />

<mx:TextArea id="source" width="356" height="201"
text="{myFlashRemote.echoString.lastResult}" x="10" y="10"/>

<mx:TextInput x="101" y="229" id="send"/>

</mx:ApolloApplication>

My CFC:
<cfcomponent>
<cffunction name = "echoString" returnType = "string" output
= "no" access = "remote">
<cfargument name = "input" type = "string">
<cfset returned = arguments.input & "chad said">
<cfreturn returned>
</cffunction>
</cfcomponent>




--
http://indeegrumpee.spaces.live.com/

Reply via email to