前端html小技巧—flash插入兼容性调整

今天分享下”前端html小技巧—flash插入兼容性调整“这篇文章,文中根据实例编码详细介绍,或许对大家的编程之路有着一定的参考空间与使用价值,需要的朋友接下来跟着云南仟龙Mark一起学习一下吧。

一、常规方法

复制代码

代码如下:

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"codebase="<a href="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0">http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0</a>" width="550" height="400" id="Untitled-1" align="middle">

<param name="allowScriptAccess" value="sameDomain" />

<param name="movie" value="mymovie.swf" />

<param name="quality" value="high" />

<param name="bgcolor" value="#ffffff" />

<embed src="mymovie.swf" quality="high" bgcolor="#ffffff" width="550" height="400"name="mymovie" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="<a href="http://www.macromedia.com/go/getflashplayer">http://www.macromedia.com/go/getflashplayer</a>" />

</object>

使用这种方法 object 和 embed 嵌入标签,仔细发现,object 许多参数和 embed 里面的许多属性都是重复的,为什么要这样做浏览器支持浏览器的兼容性 object,有的支持 embed,这就是为什么要修改 Flash 的参数时两个地方都要改的原因。

这种方法是 Macromedia 长期以来,官方方法得到了最大限度的保证 Flash 功能,没有兼容性问题。但是现在不太好用了: 由于兼容性,无法通过验证 embed 不符合标签 W3C 规范。当然,如果你不在乎什么规范不规范,那就另当别论了。

由于种种原因,微软在 sp2 后限制了 IE 的 ActiveX 页面中的使用模式 ActiveX 有一个虚拟框,用户需要点击一次才能正常交互。Flash是作为一个 ActiveX 嵌入网页,所以只有通过才会牵连 JS 嵌入 Flash 解决这个问题。

没有 Flash 版本检测,如果版本浏览器flash插件版本不够,或者不能正常显示你 swf 或者会弹出一个文件 ActiveX 对许多用户来说,确认安装的框架是可怕的。

二、用JS嵌入的方法

用JS嵌入意味着每个人都有自己的嵌入方法,包括嵌入好的和嵌入不好的。有人用 document.write 直接写,说实话不好,感觉不好 hack 成分多了,有点是为了验证而验证,什么都没有体现出来 JS 优点。我觉得很好 JS 在保证中嵌入脚本 Flash 要在应有功能的基础上发挥作用 JS 优点要有版本检测,要能很好地解决可访问性问题(即用户无法浏览) Flash 内容或禁用 JS 如何处理问题),易于重复使用。

这里SWFObject解决方案:

“SWFObject”是利用Javascript 插入flash,好处多,代码简单,不会出现IE6下的“单击此处以激活控件”的提示,并且能通过W3C验证。不同于传统的object”插入flash的方法。

SWFObject在新的2.x在版本中,最简单的调用只需要一句话,不需要等待页面加载,这意味着你可以在页面的任何地方写这句话。它比以前的版本简单得多。以下是一些简单而常用的调用方法:

最简单,最基本,只要想插入flash经典的一句话可以用。

复制代码

代码如下:

<div id="swfid"></div>

<script type="text/javascript" src="swfobject.js"></script>

<script type="text/javascript">

swfobject.embedSWF("test.swf", "swfid", "300", "120", "9.0.0", "expressInstall.swf");

</script>

注解:调用方法embedSWF——插入SWF文件,参数依次是@swf文件的地址;@用于装入swf文件的容器(如div)的id;@flash的宽度;@flash的高度(当然,这里的宽高都可以使用诸如100%这样的百分比来表示);@正常播放该flash所需的最低版本;@当版本低于要求时,执行该swf文件,这里利用这个flash跳转到官方下载最新版本的flash插件。(该参数可以省略)在同一个页面插入多个flash到不同位置时,只要重复上面的语句,使用不同的容器id就可以了。

2、给swf文件传递参数、变量、属性的调用方法

复制代码

代码如下:

<script type="text/javascript" src="swfobject.js"></script>

<script type="text/javascript">

//1、使用Json初始化变量、参数、属性

var flashvars = {

name1: “hello”,

name2: “world”,

name3: “foobar”

http://www.qlyl1688.com

};

var params = {

menu: “false”

};

var attributes = {

id: “dynamicContent2”,

name: “dynamicContent2”

};

swfobject.embedSWF(“test6_flashvars.swf”, “content2”, “300”, “120”, “6.0.0”,“expressInstall.swf”, flashvars, params, attributes);

//2、传统的初始化设置,效果一样

var flashvars = {};

flashvars.name1 = “hello”;

flashvars.name2 = “world”;

flashvars.name3 = “foobar”;

var params = {};

params.menu = “false”;

var attributes = {};

attributes.id = “dynamicContent3”;

attributes.name = “dynamicContent3”;

swfobject.embedSWF(“test6_flashvars.swf”, “content3”, “300”, “120”, “6.0.0”,“expressInstall.swf”, flashvars, params, attributes);

//3、直接写在后面,就一句话,简洁剽悍,不拖泥带水

swfobject.embedSWF(“test6_flashvars.swf”, “content5”, “300”, “120”, “6.0.0”,“expressInstall.swf”, {name1:“hello”,name2:“world”,name3:“foobar”}, {menu:“false”}, {id:“dynamicContent5”,name:“dynamicContent5”});

SWFObject 2.0 官方文档(中文) ​ ​https://www.jb51.net/books/175630.html​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值