布谷 发表于 2015-10-29 09:09:55

flash、js 函数 互相调用


[*]js调用flex函数

[*]flex 利用ExternalInterface.addCallback(“注册的方法名”,As中的函数名)进行注册
[*]js中,用document.getElementById(“Flash在Html中的ID”).注册的方法名(参数)进行调用,当然,默认”Flash在Html中的ID”就是Flex文件的名称

[*]flex调用js

[*]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="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>


页: [1]
查看完整版本: flash、js 函数 互相调用