`
alvinqq
  • 浏览: 185343 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

在网页中嵌入flash的几种方法

    博客分类:
  • Flex
阅读更多
一、传统的方法
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/get/flashplayer/current/
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="ZXL6.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<embed src="2223/ZXL6.swf" quality="high" bgcolor="#ffffff" width="550" height="400"
name="ZXL6" align="middle" allowscriptaccess="sameDomain" type="application/x-shockwave-flash"
pluginspage="http://www.adobe.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://bbs.blueidea.com/thread-2699979-1-2.html

本文引用自http://www.blueidea.com/tech/multimedia/2006/4322.asp
分享到:
评论

相关推荐

    在PPT中插入FLASH动画的几种方法.doc

    本文将详细介绍四种在PowerPoint 2003中插入Flash动画的方法。 方法一:通过插入对象 1. 打开PowerPoint,选择要插入Flash动画的幻灯片。 2. 在“插入”菜单中选择“对象”。 3. 在弹出的对话框中,选择“创建新”...

    在PPT中插入FLASH动画的几种方法 (2).doc

    以下是四种在PowerPoint 2003中插入Flash动画的方法: 方法一:通过插入对象 1. 选择“插入”菜单,然后选择“对象”。 2. 在弹出的对话框中,选择“由文件创建”,找到SWF文件,点击“插入”。 3. 在“动作设置”...

    网页中屏蔽flash右键

    在网页设计中,有时为了保护内容或提供更好的用户体验,开发者可能会选择屏蔽特定元素的右键菜单,例如Flash对象。本文将详细介绍如何在网页中屏蔽Flash的右键菜单,以及背后涉及的技术原理。 首先,让我们理解为何...

    网页中嵌入swf文件的几种方法

    ### 网页中嵌入SWF文件的几种方法 #### 一、`object`与`embed`结合方式 此方法结合了`object`与`embed`两种标签的优势,是Macromedia一直推荐的一种方式。 **优点:** - 兼容性好,几乎可以在所有浏览器上运行。...

    网页中插入flash时钟代码(白底蓝色钟面)

    ### 知识点一:网页中插入Flash时钟的基本概念 在互联网发展的早期阶段,Flash是一种广泛使用的多媒体框架,用于创建动画、视频和复杂的应用程序。由于其强大的交互能力和丰富的视觉效果,Flash常被用于网页设计中...

    如何下载网页中的flash SWF文件

    本文将详细介绍几种常用的下载Flash SWF文件的方法,帮助读者轻松解决这一问题。 #### 一、查看源文件 这种方法适用于大多数网页,尤其是那些未对Flash文件进行加密或隐藏处理的情况。具体步骤如下: 1. **打开...

    asp.net嵌如flash的几种方法

    下面,我们将详细探讨几种在ASP.NET中嵌入Flash的方法。 1. **HTML Object Tag**: 最常见的方式是通过HTML的`&lt;object&gt;`标签来插入Flash内容。你需要指定`classid`和`codebase`属性以引用Flash Player ActiveX控件...

    Web页中插入flash动画代码

    ### Web页中插入Flash动画代码知识点详解 #### 一、Flash动画在网页中的应用背景 在Web开发领域,Flash曾是一种广泛使用的多媒体技术,用于在网页上播放动画、视频和其他交互式内容。随着HTML5的发展及其对多媒体...

    论坛嵌入flash小游戏方法

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

    在PowerPoint中插入几种对象的方法.doc

    以下是关于在PowerPoint中插入几种对象的详细方法: **一、插入Flash影片** 1. **利用控件插入法** - 步骤1:打开PowerPoint,选择“视图”&gt;“工具栏”&gt;“控件工具箱”。 - 步骤2:在控件工具箱中找到“其他控件...

    Save Flash 3.0 网页flash提取工具

    在互联网的早期,Flash作为一种交互式内容制作工具,曾广泛应用于网页设计,为用户带来了丰富的动态体验。然而,随着HTML5的普及,Flash逐渐淡出舞台,但仍有部分网页依赖于Flash元素。在这种背景下,“Save Flash ...

    制作网页时常用的flash

    在网页制作中,Flash主要被用于以下几个方面: 1. 动画设计:Flash的帧动画功能使设计师可以创建复杂的序列动画,如logo动画、导航栏动画、背景动画等,增强网页的视觉吸引力。 2. 交互性:Flash支持ActionScript...

    在网页中插入多媒体对象PPT课件.pptx

    网页中的多媒体应用不仅限于以上提及的几种,还包括Java Applets和ActiveX控件,以及各种音频和视频文件格式(如Shockwave、QuickTime、RM、WMV、MP3等)。正确地使用这些元素能极大地提升网页的吸引力和功能性,为...

    VB中插入动画的几种方法

    下面将详细介绍几种在VB中实现动画效果的方法。 1. **利用PictureBox控件** PictureBox控件是VB中最常用的显示图像的控件,我们可以通过改变图片的显示速度来实现简单的动画效果。例如,可以创建一系列连续动作的...

    超好看的网页FLASH开头实例大全

    在IT行业中,网页设计是至关重要的一环,而Flash作为一种曾经广泛应用的动态网页元素,尤其在创建引人入胜的网页开头部分发挥着重要作用。"超好看的网页FLASH开头实例大全"集合了众多精彩的Flash片头设计,这些实例...

    做网页时常用的flash特效

    在描述中提到的"感兴趣可以看一下",意味着这些60个透明FLASH可能是各种不同类型的实例,包括但不限于以下几种常见的Flash特效: 1. **滑动菜单**:利用Flash制作的滑动菜单,可以通过平滑的动画效果展示子菜单,...

Global site tag (gtag.js) - Google Analytics