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>
转载于:https://blog.51cto.com/janson/1264023