js调用flash 例子
确定JS调用AS3之前,要在AS3中绑定调用函数,也就是说,只有AS3答应给的方法JS才能调用.
as3代码
ExternalInterface.addCallback("abcd", yun);
function yun(zi:String):void{
txt.text = zi;
}
html: 可以在JS中去调用这个方法了,调用前还要先取得插进HTML的SWF的ID
<script>
function sendToActionScript(value) {
var a = document.getElementById("test86");
if(a){
alert(a.id);
alert(value);
//调用as里面的abcd
a.abcd(value);
}
}
</script>
注意文件还有swfobject.js.刚试了下不发布直接点击html 这样反复测试是不行的,会因为安全沙箱的问题不能访问.放进apache里,通过
http://127.0.0.1:8088/test33.html 就可以测试了。
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>js和flash交互</title> <script type="text/javascript" src="jquery-1.8.3.min.js"></script> <script> function test(){ alert("flash调用js"); } function test2(str){ alert(str); } $(function(){ $('#testBtn').click(function(){ //alert("few2"); $('#ShotGame').get(0).test1("abc"); }) }) </script> </head> <body> <input type="button" value="js调用flash" id="testBtn"> <div class="winflash" style="width:793px;height:566px"> <object type="application/x-shockwave-flash" id="ShotGame" name="ShotGame" align="middle" data="drawpic.swf" width="100%" height="100%"> <param name="quality" value="high"> <param name="bgcolor" value="#ffffff"> <param name="wmode" value="transparent"> <param name="allowscriptaccess" value="always"> <param name="allowfullscreen" value="true"> <param name="flashvars" value="vedioUrl=main1.swf"> </object> </div> </body> </html>
flash :ExternalInterface.addCallback("test1", test1);