Flash 嵌入的问题朋友们可能认为很简单,但是具体到一些问题上来讲,就不是那么简单了,比如:IE浏览器对FLASH的拦截虚框怎么去掉?在FF、OP、NS等其它浏览器是否兼容?代码是否符合W3C标准??等等
下面我就转贴别人的一篇文件,共同学习一下
一、传统的方法<objectclassid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/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 的确认安装的框——这个框对很多用户来说是很恐怖的。
二、Flash satay只用 object 的方法,最早是2002年由 Drew McLellan 发表在 A List Apart 上,后来又经过了几次完善:
<objecttype="application/x-shockwave-flashdata="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
UFO-UnobtrusiveFlashObjects
Macomedia(现在是Adobe了..)提供的脚本
SWFObject用的比较多,就挑它来说一些这种方法的优点:
IE中没有讨厌的虚框问题了。
提供了完善的版本检测功能,如果版本不够则显示其他东西,比如图片或文字。
易于使用,只要在页面头加载一个 .js 文件,然后 HTML 写一个容器,里面放普通的文本或图片(用于无法显示 Flash 时显示),最后用脚本来替换这个元素里面的内容为 Flash。
可以通过验证——当然这个不是重点,只是顺带效果罢了。
四、结论现阶段用 JS 嵌入 Flash 是最完美的方法,虽然这法子这也是由于浏览器的种种问题而作出的妥协。
但它在保证 Flash 功能的前提下还利用 JS 提供了额外的好处,再者又已经有人写了很完善的嵌入脚本可以方面地下载使用(推荐 SWFObject),我们还有什么理由不用它呢?
SWFObject 那网页是英文的,这里写个简单的用法教程:
下载它的.js文件,在这里:
官方主页 本地下载在你的 HTML 页面头部区嵌入这个脚本文件:
<scripttype="text/javascript"src="swfobject.js"></script>
在你的 HTML 中写一个用来放 Flash 的容器,比如
,并随便给一个 id 比如 flashcontent。然后在里面放上你的替换内容。
<divid="flashcontent">
这里放替换内容,用来在Flash无法显示时显示。
</div>
使用脚本替换这个内容:
<scripttype="text/javascript">
varso=newSWFObject("movie.swf","mymovie","200","100","7","#336699");
//参数意思:地址,Flash的id(不是容器的id),宽,高,版本需求,背景颜色
//这是最基本的,如果你要高级的设置,就仔细翻翻说明吧。
so.write("flashcontent");
</script>
这脚本可以写在 HTML 中也可以写在外部 .js 文件中。
分享到:
相关推荐
总的来说,这个压缩包提供了一个完整的股票图表展示解决方案,涵盖了从数据获取、动态展示到网页集成的全过程。对于想要学习如何用Flash实现股票图表的开发者,这是一个很好的起点。通过研究这些源码,你可以了解到...
**JW Player 6.10.4906 全兼容网页视频播放器插件详解** JW Player是一款广泛使用的网页视频播放器,它的6.10.4906版本是其历史上的一个重要里程碑,以其强大的兼容性和丰富的功能在IT行业中赢得了广泛的认可。这款...
**VS工具支持**:Visual Studio虽然不是专门的Flash开发工具,但它提供了一些集成解决方案,比如使用ASP.NET和FlexBuilder插件来协同开发Web应用,或者使用Visual Web Developer的HTML编辑器来插入和配置Flash对象。...
由于浏览器的安全策略限制,JavaScript直接访问剪贴板的能力有限,尤其是在旧版浏览器中,Flash成为了实现这一功能的一种常见解决方案。 **ZeroClipboard.swf** ZeroClipboard.swf是ZeroClipboard库的核心组件,它...
需要注意的是,虽然"web_socket.js"提供了WebSocket的兼容性解决方案,但它依赖于Flash Player,而Flash在近几年逐渐被淘汰,不再被大多数现代浏览器支持。因此,对于新的项目,开发者可能需要考虑使用其他技术,如...
1. **MediaElement.js**:这是一个跨浏览器的解决方案,支持HTML5和Flash fallback,确保在所有主流浏览器上都能正常播放视频。 2. **Video.js**:一个强大的开源JavaScript和CSS库,提供丰富的自定义选项和主题,...
以下是对该平台技术解决方案的详细解析: 1. 分布式部署:平台设计要求支持分布式部署,能处理万人同时在线学习的高并发需求,且扩展性强,只需增加硬件设备即可应对更多用户。 2. 本地化部署:平台支持完全本地化...
总的来说,这个源码集合提供了一个完整的解决方案,让开发者或站长能够快速构建一个功能齐全、用户体验优秀的在线视频电影网站。通过结合HTML5、响应式设计、帝国CMS和CKPLAYER播放器,它实现了高效的内容管理、无缝...
- **快速辅助**:在出现错误时提供快速解决方案建议。 - **快速修复**:能够自动修正语法错误或代码问题。 **格式化、导航与组织代码** - **格式化**:自动调整代码格式,保持一致性。 - **导航**:通过快捷键快速...
HTML5手机音频播放器是一种基于Web技术实现的多媒体播放解决方案,尤其适用于移动设备。随着HTML5标准的普及,开发者能够创建具有丰富功能的交互式网页应用,而无需依赖Flash或其他插件。本项目专注于在手机上实现...
- 在HTML文件中,添加必要的头部引用,如CSS样式表和JavaScript库(如果使用的是基于JavaScript的解决方案)。 3. **嵌入360度动画**: - **Flash方法**:使用`<object>`或`<embed>`标签将SWF文件插入HTML。设置...
Xilinx 开发了 System Advanced Configuration Environment(简称 System ACE)系列,旨在满足多 FPGA 系统中对空间高效、预工程化的高密度配置解决方案的需求。System ACE 技术是一种开创性的在系统可编程配置方案...
5. **SWFObject**: `expressInstall.as`、`expressInstall.fla`和`expressInstall.swf`是SWFObject的文件,这是一个JavaScript库,用于检测和插入Flash内容。在SIP-js框架中,这些文件可能用于在不支持WebSocket或...
5. **高级特性**:Flowplayer支持高清播放、杜比音效、视频加密、字幕嵌入、时间戳显示、进度条预览等功能,提供了一个全方位的视频播放解决方案。 6. **自定义皮肤和样式**:通过CSS,开发者可以轻松改变播放器的...
"video.js" 是一个非常重要的开源项目,专为HTML5和Flash视频提供强大的播放器解决方案。其核心在于为开发者提供了灵活、可自定义且功能丰富的视频体验。本文将深入探讨video.js的主要特点、工作原理以及如何利用它...
- **浏览器兼容性**:不同浏览器对HTML5的支持情况及解决方案。 ##### 4. HTML基础(Learning the Basics of HTML) - **标记语言基础**:HTML的基本语法和结构。 - **文档结构**:文档类型声明、`<html>`、`<head>...
在IT行业中,尤其是在网页开发领域,视频播放是不可或缺的一部分。为了在Java前台页面上实现视频播放功能,...选择合适的播放器并进行适当的配置,可以帮助开发者构建出功能强大、易用且适应性强的视频播放解决方案。
**:列举常见的错误消息及其解决方案,帮助用户快速定位并解决问题。 - **性能优化技巧**:分享提升 Dreamweaver 性能的方法,如关闭不必要的扩展插件、清理缓存等。 - **版本更新建议**:介绍新版 Dreamweaver 的...
JSONP是一种简单的跨域解决方案,通过动态插入`<script>`标签来加载其他域的JavaScript。请求域A的页面可以在响应域B的页面中设置一个JavaScript函数调用,携带所需数据作为参数。当页面B的脚本在域A中执行时,数据...