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.
<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.
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.
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.
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.