`
ityaoyuan
  • 浏览: 40864 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

网页中嵌入Flash的方法讨论

阅读更多

Flash 嵌入的问题论坛中有人问了好多次,到底应该怎么用,为什么通不过验证,要通过验证怎么办等等等。
讨论中也出现了不少的误解,所以我单开一个帖总结一下我所知道的东西,不想看我罗嗦的直接跳到最后看结论就可以了。

一、传统的方法

<object classid="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">
<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="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 上,后来又经过了几次完善:

<object type="application/x-shockwave-flash
data="c.swf?path=movie.swf" 
width="400" height="300">
<param name="movie" 
value="c.swf?path=movie.swf" />
<img src="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 - Unobtrusive Flash Objects

Macomedia(现在是Adobe了..)提供的脚本[这里]和[这里]。

我 SWFObject 用的比较多,就挑它来说一些这种方法的优点:

IE中没有讨厌的虚框问题了。

提供了完善的版本检测功能,如果版本不够则显示其他东西,比如图片或文字。

易于使用,只要在页面头加载一个 .js 文件,然后 HTML 写一个容器,里面放普通的文本或图片(用于无法显示 Flash 时显示),最后用脚本来替换这个元素里面的内容为 Flash。

可以通过验证——当然这个不是重点,只是顺带效果罢了。

四、我的结论

现阶段用 JS 嵌入 Flash 是最完美的方法,虽然这法子这也是由于浏览器的种种问题而作出的妥协。
但它在保证 Flash 功能的前提下还利用 JS 提供了额外的好处,再者又已经有人写了很完善的嵌入脚本可以方面地下载使用(推荐 SWFObject),我们还有什么理由不用它呢?

SWFObject 那网页是英文的,这里写个简单的用法教程

下载它的.js文件,在这里: http://blog.deconcept.com/swfobject/swfobject1-4.zip (如果链接失效可能是版本有更新,请用上面给出的地址去主页下载最新版本)

在你的 HTML 页面头部<head>区嵌入这个脚本文件:

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

 在你的 HTML 中写一个用来放 Flash 的容器,比如<div>,并随便给一个 id 比如 flashcontent。然后在里面放上你的替换内容。

<div id="flashcontent">
这里放替换内容,用来在 Flash 无法显示时显示。
</div>

 使用脚本替换这个内容:

<script type="text/javascript">
   var so = new SWFObject("movie.swf", "mymovie", "200", "100", "7", "#336699");
//参数意思: 地址,Flash 的 id(不是容器的 id),宽,高,版本需求,背景颜色
//这是最基本的,如果你要高级的设置,就仔细翻翻说明吧。
   so.write("flashcontent");
</script>

 这脚本可以写在 HTML 中也可以写在外部 .js 文件中。

OK

原地址:http://www.blueidea.com/tech/multimedia/2006/4322.asp

分享到:
评论

相关推荐

    网页FLASH 首页FLASH

    FLASH这一标签表明我们讨论的是Adobe Flash技术,它曾经在20世纪末至21世纪初广泛应用于网页设计,为网页带来了丰富的多媒体体验。 Flash技术的核心是Flash Player,一个运行在用户浏览器上的插件,它能够解析和...

    论坛嵌入flash小游戏方法

    在探讨“论坛嵌入Flash小游戏方法”这一主题时,我们首先需要理解几个核心概念:论坛、Flash技术以及小游戏。论坛,作为互联网上的一种交流平台,是用户分享信息、讨论问题的重要场所。而Flash,是一种多媒体软件...

    在网页中插入多媒体对象.ppt

    接下来,我们讨论如何插入Flash影片。Flash以其高质量、高压缩率的矢量动画和强大的交互性在互联网上广泛应用。插入网页的Flash影片格式为.swf,源文件格式为.fla。在Dreamweaver中,可以通过“插入”栏的“常用”...

    flash网页模版 flash文件

    3. **Flash播放文件(.swf)**:学习.SWF文件的用途,以及如何在网页中嵌入和播放。 4. **网页模板设计**:了解如何使用预设计的模板来快速构建网页,以及模板中的常见元素和交互功能。 5. **Flash动画制作**:探索...

    第八章 在网页中插入多媒体对象.docx

    网页中插入Flash Video,可以让用户无需额外安装播放器就能观看视频。 7. **插入音频和视频文件**: 除了Flash Video,网页还可以插入其他格式的音频和视频文件,如MP3、WAV、WMA、RM等。HTML5的`&lt;audio&gt;`和`...

    在网页中插入多媒体对象培训讲义.pptx

    网页设计与制作中,插入多媒体对象是提升网页互动性和吸引力的关键技术。多媒体对象包括但不限于Flash动画、Flash视频、Java applets、ActiveX控件、音频和视频文件等。本讲义详细介绍了如何在网页中应用这些元素,...

    ADF中如何插入flash

    本篇文章将详细讲解如何在ADF项目中插入Flash内容。 首先,确保你已经安装了JDeveloper,这是Oracle提供的一个集成开发环境(IDE),支持ADF项目的开发。接下来,我们将按照以下步骤在ADF应用中整合Flash: 1. **...

    flash插入.rar

    然而,在"flash插入.rar"的上下文中,我们使用JavaScript来插入Flash,这是一种更灵活的方法。JavaScript可以通过操作DOM(文档对象模型)动态地添加或修改HTML元素,包括插入Flash内容。以下是一个简单的示例,演示...

    html中flash播放器

    而`&lt;embed&gt;`标签则更为简单,适用于快速插入Flash内容。通常,这两种方法一起使用以确保在不同浏览器中的兼容性。 3. SWF文件: Flash播放器处理的文件格式是SWF(ShockWave Flash),这是Adobe Flash创作工具导出...

    最简洁实用的图片插入网页代码

    使用Flash插入图片主要通过`&lt;embed&gt;`标签实现,该标签允许在网页中嵌入多媒体内容。 **示例代码**: ```html ; HEIGHT:136px" src=...

    网页中嵌入视频播放器.pdf

    这里主要讨论的是如何在网页中嵌入QuickTime播放器以及相关的技术细节。 首先,要理解QuickTime播放器的工作原理。QuickTime是一种多媒体框架,由Apple公司开发,用于处理音频、视频和其他交互式内容。在网页中嵌入...

    Flash音乐播放(网页组件)

    接下来,我们将详细讨论Flash音乐播放器的工作原理、相关技术以及如何在网页中实现音乐播放功能。 Flash音乐播放器是基于Adobe Flash技术的,这是一种曾经广泛应用于网页设计的多媒体平台。它允许开发者创建动画、...

    Silverlight中嵌入HTML、Flash和PDF文件示例

    你需要借助第三方库,如SWFObject,它是一个JavaScript库,用于检测浏览器是否支持Flash以及插入Flash内容。在Silverlight应用中,你需要通过JavaScript与Silverlight进行交互。首先,在HTML页面中使用SWFObject库,...

    flash地图|网页地图|动态地图

    在IT行业中,地图技术是网页开发中的一个重要组成部分,特别是对于数据可视化、地理信息系统(GIS)以及导航服务来说。本文将详细探讨"Flash地图"、"网页地图"和"动态地图"这三个关键概念,并结合文件"mp-0002"进行...

    FLASH网页制作用于开头

    标题中的“FLASH网页制作用于开头”表明我们讨论的核心是使用Adobe Flash技术来创建网页的开场部分。Flash曾经是制作动态、交互式网页内容的首选工具,尤其在创建动画、游戏和网页开场动画方面表现突出。 Flash技术...

    flash 在线网页音乐播放器下载

    标题中的“Flash在线网页音乐播放器下载”表明我们要讨论的是一个使用Adobe Flash技术构建的用于网页上的音乐播放软件。Flash是一种曾经广泛应用于网页交互、多媒体展示的技术,它允许开发人员创建动态内容,如动画...

    flash动画及网页展示

    在IT行业中,Flash动画和网页展示是数字媒体和网络设计领域的重要组成部分,特别是在创建互动式内容和用户体验上。本文将深入探讨"iebook电子杂志"中的Flash动画与网页展示技术,以及如何通过手机三维展示动画来提升...

    可以互动的可爱小仓鼠flash效果

    本文将深入探讨一个独特的互动元素——“可以互动的可爱小仓鼠Flash效果”,并讲解如何利用JavaScript与Flash技术相结合,让网页中的小仓鼠动起来,与用户进行趣味互动。 首先,我们要理解的是Flash技术。Flash是一...

    Flash网页播放器!

    本文将详细讨论“Flash网页播放器”这一主题,以及它与HTML的关系。 首先,"Flash网页播放器"指的是利用Adobe Flash技术开发的用于在网页上播放音频、视频等多媒体内容的软件组件。在早期互联网时代,Flash因其强大...

    flash相关

    其中,`swfobject.js`是一个JavaScript库,用于在没有Flash插件的浏览器中检测Flash Player的存在,并且优雅地在网页中插入SWF内容。SwfObject由Google的Georg Grossman开发,它的主要功能包括: 1. 检测用户的...

Global site tag (gtag.js) - Google Analytics