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>