AS 中的ExternalInterface类 可以用于和JS的交互
1. AS 调用 JS
AS 调用 JS 主要使用 ExternalInterface.call() 方法:
var result:String = ExternalInterface.call("jsFunc",params);
// jsFunc 是 js里面对应该函数的引用,params是该函数的形参
<script type="text/javascript">
function jsFunc(str){
return("str");
}
</script>
2. JS 调用 AS
要想在 JS 中调用 AS,需要现在 AS 中调用 ExternalInterface.addCallback() 方法:
private function asFunc(s:String):String{
return s;
}
ExternalInterface.addCallback("asFunc", asFunc);
// “asFunc” 是给外部 JS 调用使用的函数名,asFunc 对应 AS 中该函数的引用
<script type="text/javascript">
function callAs(){
// 先要获取 <object> 这个dom
document.getElementById("player").asfunc();
}
</script>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%" id="player">
<param name="movie" value="player.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<param name="allowScriptAccess" value="sameDomain" />
<param name="allowFullScreen" value="true" />
<!--[if !IE]>-->
<object type="application/x-shockwave-flash" data="player.swf" width="100%" height="100%">
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<param name="allowScriptAccess" value="sameDomain" />
<param name="allowFullScreen" value="true" />
<!--<![endif]-->
<!--[if gte IE 6]>-->
<p>
Either scripts and active content are not permitted to run or Adobe Flash Player version
11.1.0 or greater is not installed.
</p>
<!--<![endif]-->
<a href="http://www.adobe.com/go/getflashplayer">
<img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash Player" />
</a>
<!--[if !IE]>-->
</object>
<!--<![endif]-->
</object>