Js与flash交互.docx_第1页
Js与flash交互.docx_第2页
Js与flash交互.docx_第3页
Js与flash交互.docx_第4页
Js与flash交互.docx_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Js与flash交互:在html页面中用js与MyReport插件交互Html页面与flash的加载如下图,flash是html页面的一个插件节点。js与flash进行交互,首先要处理好html页面和swf的加载问题。Swf调用外部js方法,要确保js方法已存在,该条件一般都满足,因为swf加载比页面js慢。Js访问swf的接口时,要确保swf已经加载完成,该条件则需要做特殊的处理。如何做?可以想到的是,只有flash插件本身才知道自己是否加载完成,所以,需要flash插件在加载完成后要主动的通知外部html页面:“我加载完啦!”,外部html页面收到这个通知后再进行后续的操作。更复杂的情况是,页面有2次加载数据的场合:要同时保证,页面、flash、数据都加载完成后,在进行后续操作。ExternalInterface类ExternalInterface类是实现flash外部调用的关键类,其中:ExternalInterface.available:判断是否允许进行外部调用。ExternalInterface.addCallback:注册外部访问flash的方法(js 2 flash)。ExternalInterface.call:flash内部调用外部方法(flash 2 js)。关于该类的更多信息请查看帮助文档。向MyReport插件增加js访问的接口MyReportApp.swf在加载完成后会主动调用页面的js方法onMyReportInitialized;关闭时主动调用js方法onMyReportClosed;打印时主动调用js方法onMyReportPrinted。注册了一个loadReport方法可以让页面js进行调用。以下是MyReportApp的flex代码在html页面中与MyReportApp.swf交互MyReportEmbedDemo.html的代码,引入了swfobject.js向页面动态添加flash插件MyReportApp.swf。用jquery控制页面的加载,页面加载后调用onPageLoad方法。 js与flash交互:嵌入MyReport插件示例 var swfVersionStr = 11.1.0; var xiSwfUrlStr = playerProductInstall.swf; var flashvars = ; var params = ; params.quality = high; params.bgcolor = #ffffff; params.allowscriptaccess = sameDomain; params.allowScriptAccess = always; params.allowfullscreen = true; var attributes = ; attributes.id = MyReportApp; = MyReportApp; attributes.align = middle; swfobject.embedSWF(MyReportApp.swf, flashContent, 955px, 600px, swfVersionStr, xiSwfUrlStr, flashvars, params, attributes); $(document).ready(function () onPageLoad();/该方法在myreport.js实现 ); 该示例演示在页面嵌入MyReport插件,使用js与flash插件进行交互 To view this page ensure that Adobe Flash Player version 11.1.0 or greater is installed. var pageHost = (tocol = https:) ? https:/ : http:/); document.write( ); myreport.js的代码,关键位置加粗显示,页面加载后调用loadReport1调用加载报表方法,传入静态测试数据。var myReportAPI; /定义MyReport接口对象var myReportInit = false; /定义MyReport初始化变量/页面加载完成时调用function onPageLoad() myReportAPI = document.getElementById(MyReportApp); loadReport1();function onMyReportInitialized() myReportInit = true; /以下是自定义代码 alert(MyReport初始化。); loadReport1();function onMyReportClosed() /以下是自定义代码 alert(MyReport关闭。);function onMyReportPrinted() /以下是自定义代码 /alert(MyReport打印。);function myReportLoad(url, params, table) if (!myReportAPI | !myReportInit) return; myReportAPI.loadReport(url, params, table);/自定义加载方法1function loadReport1() if (!myReportInit)/ 要先判断插件是否初始化 return; var url = xml/ReportStyle1.xml; /报表路径 /报表参数数据,这里为了测试方便使用了静态的数据,实际使用时应该向服务端动态请求数据。 var params = ; params单据编号 = KA06417033944; params单据日期 = new Date(); params主标题 = 销售单; params公司名称 = XXXX贸易公司; params经手人 = 某某某; params公司地址 = 广州市天河区天河路xx号 xx大厦 xx楼; params公司电话 = 66866888; params公司 = 地址: 广州市天河区天河路xx号 xx大厦 xx楼, 电话: 66866888 ;/报表表格数据,这里为了测试方便使用了静态的数据,实际使用时应该向服务端动态请求数据。var table = new Array(); for (var i = 0; i 25; i+) table.push(ID: i, 名称: 商品

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论