swfobject.js

最近需要在项目中引入swf文件。

最初的写法:

        <div id="recorderDiv">
<object id="recorder"
classid="clsid:d27cdb6e-ae6d-11cf-96b8444553540000"codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0"
align="center">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="<%=basePath %>flash/Recorder.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<param name="allowFullScreen" value="false" />
<param name="wmode" value="transparent" />
<embed src="<%=basePath %>flash/Recorder.swf" align="center" type="application/x-shockwave-flash" id="embed">
</object>
</div>

由于IE只支持对Object的解析,火狐、谷歌、Safari只支持对Embed的解析,所以这种写法在版本较高的浏览器中表现的还算正常。

但在IE8下,以上写法弹窗报错:参数无效。

引入swfobject.js后的写法:

function createRecorder() {
var flashvars = {};
var params = {};
var attributes = {
styleclass: "recorderClass"
}
swfobject.embedSWF("<%=basePath %>flash/Recorder.swf" ,"recorderDiv", "320", "220", "9.0.0", "<%=basePath %>flash/Recorder.swf"
, flashvars, params, attributes); 
}

这种写法,使得兼容性的问题得以解决。但却带来两个问题:

一、此前为embed标签单独写了样式,这时需要换种方式制定样式

代码如上所示,使用styleclass指定<embed/>的样式

二、在为swf传参数的时候,只能使用json,这在flex中接收比较繁琐

举例来说,当只需要传递一个参数的时候,我们可以参与如下写法:

swfobject.embedSWF("<%=basePath %>flash/Recorder.swf?msgID=" + msgID ,"recorderDiv", "320", "220", "9.0.0", "<%=basePath %>flash/Recorder.swf?msgID=" + msgID, flashvars, params, attributes); 

附:从网络下载的zip文件,有时可能因为文件过大而被上传者分成多个部分上传。这样下载的文件可能是:a.zip.001、a.zip.002.

对于这样的文件,有时利用压缩软件无法正常解压缩,可以在命令行运行如下命令:

copy /b a.zip.001+a.zip.002 a.zip   这个命令将两个文件合成一个

之后解压缩a.zip即可

使用swfobject.js时样式及传参的问题的更多相关文章

  1. JS XMLHttpRequest.upload.addEventListener 传参,回调

    JS 回调函数,传参的办法. function uploadFile(t) { var fd = new FormData(); fd.append("_netLogo", doc ...

  2. js 调用接口并传参

    注:需先引入 jquery.json-xx.min.js 1. 参数跟在url后面 var name = '王一'; var age = 18; $.ajax({ type : 'get', url ...

  3. js加减运算·传参

    <!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title> ...

  4. JS中onclick事件传参

    美术馆案例中,需要将“增加一个img标签,放入大图片”这样一个函数封装,但是在调用的时候需要传参. <script type="text/javascript"> on ...

  5. js匿名函数使用&传参

    function () { alert("error"); } //报错:匿名函数不能直接调用 使用 0x01 (function () { alert("Success ...

  6. js中给函数传参函数时,函数加括号与不加括号的区别

    <!doctype html><html><head><script> function show() { alert("123") ...

  7. 使用SetInterval时函数不能传参问题

    无论是window.setTimeout还是window.setInterval,在使用函数名作为调用句柄时都不能带参数,而在许多场合必须要带参数,这就需要想方法解决.经网上查询后整理如下:例如对于函 ...

  8. js中给正则传参、传递变量

    js中验证字符串有时需要用到正则表达式,一般情况下直接写正则进行验证就行. 但是遇到需要把部分正则作为参数传递就麻烦一点,需要用到RegExp()对象. <script type="t ...

  9. Android与JS交互,json传参问题

    一.JS调用Android的方法 JS调用安卓的方法,并且传递的参数为json格式的字符串(JSONObject.toString()), 例如: var json = {"name&quo ...

随机推荐

  1. Oracle 中新增字段后patch

    begin  ad_zd_table.patch('APPLSYS', 'CUX_3_GL_FARMER_BALANCE'); end ;

  2. 一些对数学领域及数学研究的个人看法(转载自博士论坛wcboy)

    转自:http://www.math.org.cn/forum.php?mod=viewthread&tid=14819&extra=&page=1 原作者: wcboy 现在 ...

  3. springMVC和mybatis整合,jsp对时间进行格式化

    发现jsp显示的时间,是java Date类型的默认格式,一串鸡肠.... 可在jsp对输出进行格式化: 1.加入taglib <%@ taglib prefix="fmt" ...

  4. 利用cubieboard设置samba打印服务器

    #注意安装下面软件前,先将cubieboard的动态地址改为静态地址! apt-get install samba #安装samba vi /etc/samba/smb.conf //配置 workg ...

  5. Windows下安装Nginx反向代理服务器

    一,首先到 Nginx官方网站下载最新版本,下载网址: http://nginx.org/en/download.html 二,解压ZIP包,目录修改为nginx.放置在D盘根目录下,也可以放置在其它 ...

  6. 安装Eclipse及相关Plugin

    Eclipse: 此处选用基于Eclipse的开发工具:STS 官方网站:https://spring.io/tools/sts Plugins: Open Explorer文件浏览插件it open ...

  7. 1.1. 如何使用XproerUI库

    项目类型:MFC   XproerUI结构: 3rd                    第三方库目录   cximage     dll                编译的DLL目录   pug ...

  8. MySQL大数据量快速分页实现(转载)

    在mysql中如果是小数据量分页我们直接使用limit x,y即可,但是如果千万数据使用这样你无法正常使用分页功能了,那么大数据量要如何构造sql查询分页呢?     般刚开始学SQL语句的时候,会这 ...

  9. Linux驱动学习之什么是驱动?

    一.什么是驱动? 1: 驱动一词的字面意思 2: 物理上的驱动 3: 硬件中的驱动 4: linux内核驱动.软件层面上的驱动广义上是指:这一段代码操作了硬件去动,所以这一段代码就叫硬件的驱动程序. ...

  10. 使用vagrant创建虚拟机

    关于vagrant,维基百科给出了定义:"Vagrant is an open-source software product for building and maintaining po ...