网页中加载flash的方法
一、传统方法
swflash.cab#version=7,0,0,0" width="550"height="400"id="Untitled-1"align="middle"><paramname="allowScriptAccess"value="sameDomain"/><paramname="movie"value="mymovie.swf"/><paramname="quality"value="high"/><paramname="bgcolor"value="#ffffff"/><embedsrc="mymovie.swf"quality="high"bgcolor="#ffffff"width="550" height="400"name="mymovie"align="middle"allowScriptAccess="sameDomain" type="application/x-shockwave-flash"pluginspage="http://www.macromedia.com/go/getflashplayer"/></object>
这方法是使用 object 和 embed 标签来嵌入,细心的会发现,object 的很多参数和 embed 里面的很多属性是重复的,为什么这样做?为了浏览器兼容性,有的浏览器支持 object,有的支持 embed,这也是为什么要修改 Flash 的参数时两个地方都要改的原因。这种方法是 Macromedia 一直以来的官方方法,最大限度的保证了 Flash 的功能,没有兼容性问题。但是它现在不那么好用了:无法通过验证,由于为了兼容性而嵌入的 embed 标签是不符合 W3C 的规范的。当然,如果你不在乎什么规范不规范,另当别论。
微软由于种种原因,在 sp2 后限制了 IE 的 ActiveX 的使用模式,就是在页面中的 ActiveX 有一个虚框,需要用户点击一次才能正常交互。Flash是作为一个 ActiveX 嵌入到网页中的,所以它也会受牵连,只有通过 JS 嵌入 Flash 才能解决这个问题。没有 Flash 版本检测,如果版本浏览器的flash插件版本不够,或者不能正常显示你的 swf 文件,或者会弹出一个 ActiveX 的确认安装的框——这个框对很多用户来说是很恐怖的。
二、只用 object 的方法
这种方法的名字叫做 Flash satay,最早是2002年由 Drew McLellan 发表在 A List Apart 上,后来又经过了几次完善:
data="c.swf?path=movie.swf"
width="400"height="300"><paramname="movie"value="c.swf?path=movie.swf"/><imgsrc="noflash.gif"width="200"height="100"alt=""/></object>
这方法没 embed 了,可以通过验证,是标准的嵌入 Flash 的方法,浏览器兼容性也不错,看起来几乎完美,不过还是有问题的:需要一个 holder swf 来加载你的目标 swf 以保证 IE 中的 stream 能力,如果你需要通过 flashvars 来传参,或者和页面的 JS 交互,会很麻烦。同上面第二点,ActiveX的虚框问题。继续同上没有版本检测,还是有少数用户代理(比如一些版本的 safari 和一些屏幕阅读器)不认这种方式,有bug。
三、用JS嵌入的方法
用JS嵌入就是各有各的嵌入方法了,有嵌得好的有嵌得不好的。有人用 document.write 直接写,这法子说实话不大好,感觉 hack 成分多了,有点为了验证而验证的意思,而且没有体现出什么 JS 的优势。我觉得一个好的 JS 嵌入脚本,在保证 Flash 应有功能的基础上,⒒?JS 的优势应该要有版本检测,要能很好解决可访问性问题(也就是用户在无法浏览 Flash 内容或禁用 JS 的时候应该如何处理的问题),要易于重复使用。常见的 JS 嵌入方法如:SWFObject (FlashObject),IE中没有讨厌的虚框问题了。提供了完善的版本检测功能,如果版本不够则显示其他东西,比如图片或文字。易于使用,只要在页面头加载一个 .js 文件,然后 HTML 写一个容器,里面放普通的文本或图片(用于无法显示 Flash 时显示),最后用脚本来替换这个元素里面的内容为 Flash。可以通过验证——当然这个不是重点,只是顺带效果罢了。现阶段用 SWFObject 嵌入 Flash 是最完美的方法,虽然这法子这也是由于浏览器的种种问题而作出的妥协。但它在保证 Flash 功能的前提下还利用 JS 提供了额外的好处,我们还有什么理由不用它呢?
SWFObject(FlashObject)的使用方法:
1、点击下载此文件 swfobject1.5.zip
2、解压后将其中的swfobject.js(flashobject.js)上传到网站中
3、在页面中输入下面的代码即可,不用输入那些麻烦的<object>、<embed>了(假设swfobject.js(flashobject.js)和flashmovie.swf都处于网站根目录中):
</div><script type="text/javascript">varfo=newSWFObject("/flashmovie.swf","mymovie","200","100","7","#336699");
fo.write("flashcontent");
</script>
其中设置影片属性的是这句:
这6个参数是必须的,具体介绍如下:
1、swf - swf路径和文件名;
2、id - 对象ID;
3、width - 影片宽度;
4、height - 影片高度;
5、version - 指定Flash Player的版本。可以指定具体版本,例如: “6.0.65″。也可以指定主版本,例如:”6″;
6、background color - 指定Flash影片的背景色
也就是:
SWFObject("swf文件", "swf标识", "宽度", "高度", "FlashPlay最低版本号", "背景色");
下面我们来看一下我们嵌入一个flash的范例.
根据上面的基本工作方式,我们还要嵌入一些其它的参数.来满足我们一些其它的需要比如我们有一个文件名为ws.swf,我们想把它嵌入到页面中,又不至于受IE更新的影响.
1.在页面中包入swfobject.js(flashobject.js)文件
<script type="text/javascript" src="swfobject.js"></script>
一般这行代码可以写在body标签之前即可.
2.把下面这段代码加在它下方.
fo.addParam("quality","low");
fo.addParam("wmode","transparent");
fo.addParam("salign","t");
fo.addParam("scale","noscale");
fo.addParam("loop","false");
fo.write("flashcontent");
</script>
从上面的代码中我们看出,我们将要把FLASH放在id为flashcontent层中,它的宽为300高为200像素,那么应是和我们的swf文件的大小是相同的.如果你想缩放也可以是不同的.下面var fo = new FlashObject("ws.swf", "mymovie", "300", "200px", "7", "#336699");
是嵌入flash文件,在之前的内容已介绍过它里面的参数,其中的ws.swf可以是相对路径也可以是绝对路径,如你可以直接输入网站加上你的swf文件名字.
再下面的一段就是我们可以加入的参数,从上到下分别为quality质量,wmode transparent透明,salign对齐,scale缩放,loop循环等.
这样我们的嵌入过程就完成了.
如果你想使用flashVars来进行html与flash之前的通讯,使用swfobject也是很容易的,但有一点使用swfobject时只有在 swf刚一载入时传递参数.并且是以值对的形式来传递,如下:variable1=value1&variable2=value2& variable3=value3
使用方法如下:
fo.addVariable("variable1","value1");
fo.addVariable("variable2","value2");
fo.addVariable("variable3","value3");
fo.write("flashcontent");
</script>
一旦这一步完成,那么所有的变量就已经传入到flash,你就可以灵活的在你的flash中的_root上使用了.deconcept flashObject还提供了可以加入其它参数的说明.你可以详细查看
转载于:https://www.cnblogs.com/zhouweiwei/archive/2009/11/19/1866521.html
网页中加载flash的方法相关推荐
- jsp网页无法加载css解决方法
jsp网页无法加载css解决方法 自己做了一个项目,完了之后服务器自己写的,网页不会做就去网上淘了一个别人的纯网页代码.完了之后改了两天改出来了自己的模板,结果导入到myeclipse工作空间的时候- ...
- 使用 pdf.js 在网页中加载 pdf 文件
在网页中加载并显示PDF文件是最常见的业务需求.例如以下应用场景:(1)在电商网站上购物之后,下载电子发票之前先预览发票.(2)电子政务管理系统中查看发布的公文,公文文件一般是PDF格式的文件. 目前 ...
- spring配置中加载properties文件方法
首先,遇到一个问题,spring配置中加载properties文件配置如下: <context:property-placeholder ignore-unresolvable="tr ...
- 通过超图在网页中加载3dmax模型
接此: https://blog.csdn.net/bcbobo21cn/article/details/116806866 在场景中加载了3dmax模型后,保存场景: 场景节点下面出来一个场景: 保 ...
- 网页中加载二次元3D虚拟主播源码(1:项目介绍和源码)
vrm格式的二次元3D虚拟主播在日本实际上已经盛行多年,由于文化和差异的原因,在我们这只有年轻人比较喜爱.今天我们讲的是如何加载这种模型,然后实现一些动画. 别的不说,我们先上效果视频: 3D二次元虚 ...
- 网页中加载obj模型比较慢_Web前端优化技巧分享,让你的网页显示的更流畅
如果我们在打开一个网站时速度很慢,势必会影响体验,甚至会造成用户流失.浏览量下降的情况.想要解决这个问题自然就需要Web前端开发人员对前端页面进行优化,众所周知,前端的页面主要包括HTML.CSS.J ...
- 网页中加载obj模型比较慢_R语言估计时变VAR模型时间序列的实证研究分析案例...
原文 http://tecdat.cn/?p=3364tecdat.cn 加载R包和数据集 上述症状数据集包含在R-package 中,并在加载时自动可用. 加载包后,我们将此数据集中包含的12个心 ...
- 从资源中加载特殊资源方法
在资源中保存了GIF,PNG,ANI等等资源时怎样加载呢? 可以使用如下方法 加载动态图标(光标)的方法 注意再将光标导入到资源时候资源类型输入ANI // 在一般mfc程序中使用 // HINST ...
- IOS Swift5 WkWebView 跳转网页后 加载页面结果方法拦截(WKNavigationResponse)
步骤 找到拦截的方法 参数说明 获取状态码,判断状态 先说明一下我的需求,这里是用wkwebview嵌套了一层h5的页面,在 h5页面做跳转时,会有可能地址加载404的情况,这个时候会显示白屏,然后我 ...
最新文章
- 如何真正理解用户标签体系?
- axios教程01-基本使用流程
- C语言必知的几个概念
- 前端学习(1748):前端调试值之console的一些设置
- 拉普拉斯方程之美:万物的数学之匙
- 基于JAVA+SpringMVC+Mybatis+MYSQL的校友录管理系统
- 通过AO连接多个EO并进行使用
- 汉王拉开人脸识别产业化大幕 市场应用前景广阔
- java ide 的优劣_Java程序员的困惑 Java IDE到底怎么选
- VC与JAVA DES加密算法互操作
- Hyper-V 2016 系列教程44 System Center 2016 Data Protection Manager 介绍和工作原理
- 计算机网络(第七版)谢希仁
- java读取properties文件连接数据库
- x86 x64 IA64的关系和区别
- win10下最好用的输入法
- flutter实战!一个Android应届生从上海离职,深度好文
- 国内最常用的坐标系大全
- OSChina 周五乱弹 —— 看来我只适合当一个千斤顶
- 左神算法:如何较为直观地打印二叉树(Java版)
- Quantopian 入门系列一