Communicating with the Flash application¶
To open a Flash Player, add a control of type FlashPlayer to your ScriptUI window. A control object of this type contains functions that allow your script to load SWF files and control movie playback. It also contains functions that allow your Adobe application script to communicate with the ActionScript environment of the Flash application. See FlashPlayer control functions.
A limited set of data types can be passed between the two scripting environments:
date objects are not supported as parameter values.
In the ActionScript script for your Flash application, you must prepare for two-way communication by
providing access to the External API. Do this by importing the
ExternalInterface class into your Flash
Calling ExtendScript functions from ActionScript¶
ExternalInterface class allows you to call an ExtendScript function that has been
defined in the
FlashPlayer element in the Adobe application script, and run it in the ActionScript
environment. You must define the method in your FlashPlayer element with a matching function name.
For example, in order for the SWF code to call an ExtendScript function named
define a function with the name
myExtendScriptFunction as a method of your
object. There are no special requirements for function names, but the function must take and return only
data of the supported types.
You do not need to register the ExtendScript function in the ActionScript environment. Your ActionScript
script can simply call the external function using the
When the Flash Player executes the ExternalInterface call, ScriptUI looks for a function with the same
name as a method of the FlashPlayer element, and invokes it with the specified arguments. In the
Calling ActionScript functions from a ScriptUI script¶
From the ExtendScript side, use the
FlashPlayer method invokePlayerFunction() to call ActionScript
methods that have been defined within the Flash application:
var result = flashElement.invokePlayerFunction( "ActionScript_function_name", [ arg1, ..., argN ] );
You can use the optional arguments to pass data (of supported types) to the ActionScript method.
Before you can call any ActionScript function from your Adobe application script, your Flash application
must register that function with the
ExternalInterface object, as a callback from the Flash container. To
register a function, use the
public static addCallback(methodName:String, instance:Object, method:Function);
This registers a function defined in your Adobe application script named
ExternalInterface.addCallback( "getActionScriptArray", this, getActionScriptArray );
These examples in the Adobe ExtendScript SDK demonstrate how to use the Flash Player:
|UsingFlashPlayer.jsx||Shows how to create a Flash Player, and use it to load a play back a movie defined in an SWF file.|
|ActionScriptDemo.jsx||Shows how to communicate between the Adobe application scripting environment and the ActionScript scripting environment of the Flash Player.|