本文实例讲述了JS访问SWF的函数用法。分享给大家供大家参考。具体分析如下:
关于Flash和JS相互调用的例子已经说很多了,这不是难题,当然,调用错误这也不是Flash和JS的错误,我们今天就来彻底解决IE,FF和Chrome之间的不兼容问题!
我们知道,Flash中,如果访问外部JS函数,只需
代码如下:
flash.external.ExternalInterface.call("JS中的函数名");
这一句即可
如果要JS访问Flash中的函数,需要用addCallBack注册一个回调函数,让JS去调用(AS2例子)
?
1 2 3 4 5 6 7 8 import flash.external.*; var methodName:String = "SetImgPath"; //JS需要调用的函数名字 var instance:Object = null; var method:Function = extractstr; //Flash中实际的函数名字,参数忽略,但是你调用的时候要记得有参数的要加上 var wasSuccessful:Boolean = ExternalInterface.addCallback(methodName, instance, method); trace(wasSuccessful+"-callback")我们可以trace一下,这个时候如果是true,表示注册成功
OK,下面web中试用一下:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 <div style="margin-left:50px; margin-bottom:50px"><input type="text" id="mytxt" border="1" value="这是测试框,调用页面JS演示" style="width:200px"/></div> <div id="flashContent"> <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="515" height="320" id="123" align="middle"> <param name="movie" value="123.swf" /> <param name="quality" value="high" /> <param name="bgcolor" value="#000000" /> <param name="play" value="true" /> <param name="loop" value="true" /> <param name="wmode" value="transparent" /> <param name="scale" value="showall" /> <param name="menu" value="true" /> <param name="devicefont" value="false" /> <param name="salign" value="" /> <param name="allowScriptAccess" value="sameDomain" /> <!--[if !IE]>--> <object type="application/x-shockwave-flash" data="123.swf" width="515" height="320"><!--下面针对非IE内核新闻热点
疑难解答