Call a function in FLEX from JavaScript

Sometimes you need to call a function that is defined in your Flex application from the JavaScript code that wraps it.

In order to do so you have to define a callback function inside the Flex application and declare it using the ExternalInterface class.

So first we define the function that will be called:

public function onMsgFromJS(message:String):void{;

Then somewhere in your code, maybe in the init function you declare that function as a callback function

public function init():void{

Then you can start working on the JavaScript side. In your html file add a JavaScript block with the following code:

function thisMovie(movieName) {
// IE and Netscape refer to the movie object differently.
// This function returns the appropriate syntax depending on the browser.

if (navigator.appName.indexOf ("Microsoft") !=-1) {
return window[movieName];

} else {
return window.document[movieName];

//this function would call a flash/flex function.
function callFlex()
//Get the reference so activeX or Plugin. flexApp is id/name of OBJECT/EMBED tags
var flashObject = thisMovie("flexApp");

flashObject.onMsgFromJS("Hello from JavaScript");


Now you can add calls to the function "callFlex"
like this: