欢迎来到天天文库
浏览记录
ID:3914042
大小:109.78 KB
页数:3页
时间:2017-11-25
《flash和javascript之间的交互》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、浪曦网-国内顶级IT视频网络编程教育平台Www.LangSin.Comflash和javascript之间的交互最近做一个应用,flash和javascript之间互有调用。最后一次写点Actionscript也是在flash7的时候了,因此按照我的想法,只要用fscommand和getUrl("javasciprt:.......")这种形式,flash和javascript之间互相调用应该不是什么大问题。没多久就开始觉着自己落后了,Flash8早已经新增了ExternalInterfaceAPI专门处理flash与外部应用的交互,只要浏览器装有flashplayer,支持的范围应是更广。
2、ExternalInterfaceclass能够运行的环境InternetExplorerforWindows(5.0andlater)Firefox1.0andlaterMozilla1.7.5andlaterNetscape8.0andlaterSafari1.3andlater.使用心得ExternalInterfaceclass仅仅只有两个方法:addCallback(methodName:String,instance:Object,method:Function):BooleanRegistersanActionScriptmethodascallablefromtheconta
3、iner.call(methodName:String,[parameter1:Object]):ObjectCallsafunctionexposedbytheFlashPlayercontainer,passing0ormorearguments.这两个方法的使用在手册有详细说明,使用范例可以从flash的安装路径例如C:ProgramFilesMacromediaFlash8SamplesandTutorialsSamplesActionScriptExternalAPI下面找到,没太大悬念。碰到的问题在IE浏览器下,将flash对象放在form标签之间,External
4、Interfaceclass就会给你报javascript错,而firefox下完全正常,这简直是让人很郁闷的事情,折腾了一天才找到浪曦网-国内顶级IT视频网络编程教育平台Www.LangSin.Com浪曦网-国内顶级IT视频网络编程教育平台Www.LangSin.Com问题原因,可能是IE的Bug吧,这个在livedoc上有人反映过类似的问题。见下面的url:http://livedocs.macromedia.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=0000220
5、0.html有人提出这样的解决办法,将下面这段javascript放在html里的flash之前:这样就可以一定程度上解决ExternalInterface在form标签之间会报错的问题,是asp.net开发者的福音。原理下面是浏览器载入一个包含ExternalInterface调用的flash之后,flashplayer可能会用到的方法function__flash__arrayToXML(obj){vars="";for(vari=0;is+=""+__flash__toXML(obj[i])+"";}returns+"";}function__flash__argumentsToXML
6、(obj,index){vars="";for(vari=index;is+=__flash__toXML(obj[i]);}浪曦网-国内顶级IT视频网络编程教育平台Www.LangSin.Com浪曦网-国内顶级IT视频网络编程教育平台Www.LangSin.Comreturns+"";}function__flash__objectToXML(obj){vars="";}function__flash__escapeXML(s){returns.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/’/g,"'
7、");}function__flash__toXML(value){vartype=typeof(value);if(type=="string"){return""+__flash__escapeXML(value)+"";}elseif(type=="undefined"){return"";}elseif(type=="number"){return""+value+"";}可以认为现在的Externa
此文档下载收益归作者所有