JS调用AS的函数

AS:

import flash.external.*;

//公开给js调用的方法名

var methodName:String = "goHome";

var instance:Object = null;

//调用时所对应as里的函数

var method:Function = goToMacromedia;

ExternalInterface.addCallback(methodName, instance, method);

function goToMacromedia() {

}


JS:<script type="text/javascript">function callExternalInterface() {      thisMovie("externalInterfaceExample").goHome(); }  function thisMovie(movieName) {   if (navigator.appName.indexOf("Microsoft") != -1) {        return window[movieName]    } else {       return document[movieName]  } }callExternalInterface() </script>
HTML:
<object id="externalInterfaceExample" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="475" height="71">
             <param name="movie" value="http://56.16.191.80/p_w_picpaths/banner/banner-logo.swf">
             <param name="quality" value="high">
           <embed src="example.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="475" height="71"></embed>
参考:http://www.cnblogs.com/kouwell/archive/2005/07/11/190602.html

如果你用的是js嵌的swf,如(swfobject.js):

参考:http://code.google.com/p/swfobject/wiki/documentation

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml"lang="en"xml:lang="en">
 <head>
   <title>SWFObject dynamic embed - step 3</title>
   <metahttp-equiv="Content-Type"content="text/html; charset=iso-8859-1"/>
   <scripttype="text/javascript"src="swfobject.js"></script><script type="text/javascript">
var flashvars ={
};
var params ={
};
var attributes ={
id:"myDynamicContent",
};
swfobject.embedSWF("myContent.swf","myContent","300","120","9.0.0","expressInstall.swf", flashvars, params, attributes);
</script>  </head>
 <body>
   <divid="myContent">
     <p>Alternative content</p>
   </div>
 </body>
</html>

那么js就可以直接用:

<script type="text/javascript">function callExternalInterface() {

   var obj=swfobject.getObjectById("myDynamicContent");

‍ if(obj){

obj.goHome();

}

 }

callExternalInterface()

</script>
如果想一等页面加载完就调用,最好用window.οnlοad=setTimeout("callExternalInterface()",1000);原因参考:http://www.google.com/support/forum/p/Chrome/thread?tid=68745d252343dd53&hl=en


---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

AS调用JS:

AS:

import flash.external.*;

var greeting = String(ExternalInterface.call("sayHello", "browser"));

txt.text=greeting;


JS:

<script>

function sayHello(name) {

alert(">> Hello " + name + ".");

    return ">> Hi Flash.";

}

</script>