- flex 利用ExternalInterface.addCallback(“注册的方法名”,As中的函数名)进行注册
- js中,用document.getElementById(“Flash在Html中的ID”).注册的方法名(参数)进行调用,当然,默认”Flash在Html中的ID”就是Flex文件的名称
- Flex里面使用ExternalInterface.call(“Js函数名称”,参数)进行调用javascript方法,其返回的值就是Js函数所返回的值
注意:具体使用时,要注意文档结构(flash与js在页面中的位置),对节点对象做相应的调整。 js调用flash function 的方法
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>call flash function </title>
<script language=javascript>
function test()
{
var str = document.getElementById('main').back(); alert(str);
}
</script>
</head> <body>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="main" codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
<param name="movie" value="main.swf" />
<param name="wmode" value="transparent">
<param name="quality" value="high" />
<param name="bgcolor" value="ffffff" />
<param name="allowScriptAccess" value="always" />
<embed src="test.swf" quality="high" bgcolor="ffffff" width="217" height="24" name="upload" align="middle" play="true" wmode="transparent" loop="false" quality="high" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer">
</embed>
</object>
</body>
</html>
flash 方法:
<?xml version="1.0" encoding="utf-8"?><br><mx:Application xmlns:mx="[color=blue !important]http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initApp()">
<mx:Script>
<![CDATA[<br>
import mx.controls.Alert;
import flash.external.ExternalInterface;
public function initApp():void {
ExternalInterface.addCallback("back",back);
ExternalInterface.call("test");
}
public function back():String {
return "back";
}
]]>
</mx:Script>
</mx:Application>
|