Using Flash with ColdFusion components

ColdFusion components require little modification to work with Flash. The cffunction tag names the function and contains the CFML logic, and the cfreturn tag returns the result to Flash. The name of the ColdFusion component file (*.cfc) translates to the service name in ActionScript.

Note:   For ColdFusion component methods to communicate with Flash movies, you must set the cffunction tag's access attribute to remote.

The following example replicates the helloWorld function that was previously implemented as a ColdFusion page. For more information, see "Using the Flash Remoting service with ColdFusion pages" on page 685.

To create a ColdFusion component that interacts with a Flash movie:

  1. Create a ColdFusion component, and save it as flashComponent.cfc in the helloExamples directory.
  2. Modify the code in flashComponent.cfc so that it appears as follows:
    <cfcomponent name="flashComponent">
      <cffunction name="helloWorld" access="remote" returnType="Struct">
          <cfset tempStruct = StructNew()>
          <cfset tempStruct.timeVar = DateFormat(Now ())>
          <cfset tempStruct.helloMessage = "Hello World">
          <cfreturn tempStruct>
      </cffunction>
    </cfcomponent>
    

    In this example, the helloWorld function is created. The cfreturn tag returns the result to the Flash movie.

  3. Save the file.

The helloWorld service function is now available through the flashComponent service to ActionScript. The following ActionScript example calls this function:

#include "NetServices.as"
NetServices.setDefaultGatewayUrl("http://localhost:8500/flashservices/gateway");
gatewayConnection = NetServices.createGatewayConnection();
CFCService = gatewayConnection.getService("flashExamples.flashComponent", this);
CFCService.helloWorld();

In this example, the getService references the flashComponent component in the flashExamples directory. You can now call the CFCService object sayHello and getTime functions.

For ColdFusion components, the component file name, including the directory structure from the web root, serves as the service name. Remember to delimit the path directories rather than backslashes.

Using component metadata with the Flash Remoting service

Flash MX designers can use the Service Browser in the Flash MX authoring environment to discover business logic functionality built in ColdFusion. You use the description attribute of the cffunction and cfargument tags to describe the ColdFusion functionality to the Service Browser.

To create a ColdFusion component that describes itself to the Service Browser:

  1. Open flashComponents.cfc, and modify the code so that it appears as follows:
    <cfcomponent name="flashComponent">
      <cffunction name="helloWorld" access="remote" returnType="Struct" 
        description="Returns hello message">
        <cfset tempStruct = StructNew()>
        <cfset tempStruct.timeVar = DateFormat(Now ())>
        <cfset tempStruct.helloMessage = "Hello World">
        <cfreturn tempStruct>
      </cffunction>
    </cfcomponent>
    

    In this example, the description attribute of the cffunction tag supplies a short text description of the component method.

  2. Save the file.
  3. Open the Flash MX authoring environment, and open the Service Browser.
  4. If not already present, add your Flash Remoting service URL, such as http://localhost:8500/flashservices/gateway.
  5. To add the flashComponent service, enter helloExamples.flashComponent.
  6. When you click the getTime folder, the description appears in the Service Browser as shown in the following figure:

    Service Browser user interface .

Comments