`
alvinqq
  • 浏览: 181414 次
  • 性别: 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
分享到:
评论

相关推荐

    Flash在网页设计中的应用

    本文介绍了网页中嵌入Flash动画的几种方法,并通过示例进一步说明了在网页中如何插入Flash动画,最后对网 站建设中如何使用F1ash技术做了阐述。

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

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

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

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

    flash在C#中的应用

    现在我们就来看看在C#桌面程序中如何插入Flash视频,而且去掉烦人的右键菜单。 首先要插入Flash就必须使用Flash控件,在工具栏右键选择“选择项…”,然后在“COM组件”面板下点击“浏览”按钮,在本机电脑C:\...

    ppt的多媒体效果.doc

    Ppt的制作(多媒体效果) 一、在PowerPoint中插入flash影片的方法 二、在PPT中插入视频 三、PowerPoint中插入声音的几种方法。 四、在用PowerPoint制作课件时加入解说词 在PPT中能插入的动画和视频、音频格式 动画:...

    闪灵Flash相册模块独立后台版asp版v1.0

    闪灵Flash相册模块独立后台版布局简单功能强大,提供html代码、网页地址两种引用方法来调用模块,无论是将模块插入到网页中还是独立访问都可以完美实现! 功能说明:在后台集成了几十种相册展示样式,并且每次官网...

    闪灵Flash相册模块独立后台版 v1.0

    闪灵Flash相册模块独立后台版布局简单功能强大,提供html代码、网页地址两种引用方法来调用模块,无论是将模块插入到网页中还是独立访问都可以完美实现!功能说明:在后台集成了几十种相册展示样式,并且每次官网...

    flashmtv的制作

    这两款文字特效软件,内置了几百种效果,做出的歌词效果,很多是用Flash无法完成的,至于怎样使用这两款软件这里就不做详细介绍了,点击查看这两款软件都是所见即所得,也就是说你添加的效果很快就能在软件中预览到,...

    flash shiti

    38.在声音同步类型中包括哪几种类型? A. Event B. Start C. Stop D. Stream 39.以下操作哪几项属于恢复上次操作? A. 打开Edit菜单下的Redo命令 B. 按Crrl+z键 C. 按Crrl+y键 D. 打开Edit菜单下的Undo命令...

    网页与Web程序设计 课件 ppt 机械工业出版社 part1

    15.1.1 创建逐帧动画的几种方法 284 15.1.2 制作过程 284 15.2 形状补间动画 287 15.2.1 创建形状补间动画的方法 287 15.2.2 制作过程 287 15.3 动作补间动画 288 15.3.1 创建动作补间动画的方法 288 15.3.2...

    Flash动画全屏播放问题有解

    PowerPoint 是我们常用的制作课件的软件,有些时候,我们需要插入一些Flash动画,这就会涉及到一些问题。Flash动画不全屏播放的问题。经过试验、讨论、对比,出现几种常见的解决办法。

    Flash伴侣

    目前仅支持圆角矩形、椭圆形、多边形几种类型的异形窗口。以后此功能会逐渐加强。 3.增加了w.sd()和w.ed()命令,这样当窗口的样式设为无标题栏时,你可以通过在flash按钮的on(press)事件中发送w.sd()命令、on...

    Aneesoft 3D Flash Gallery 2.4.0.

    很简单就可以制作flash了,,只需上传几张图片,然后插入音乐,,有很多种模式可供选择。非常简单一上手

    Dreamweaver网页设计(计算机应用).doc

    理解:超级链接几种状态 之间的差别和共同点;了解:创建Email链接中的各种技巧。 第六章 层与层动画(3学时) 【教学内容】 一、层的概念;二、创建层;三、层操作;四、层与表格的相互转换;五、层动画 的概念与...

    推荐:PPT制作技巧大全

    【6】Flash动画“闪”在PowerPoint中的四种方法... 5 【7】PowerPoint中插入视频的三种方法... 7 【8】Word转换为PPT文档... 9 【9】PowerPoint技巧大集合... 10 【10】PPT应用之经验与技巧... 13

    Aneesoft 3d Flash Gallery破解版

    有几十种效果,只需简单的操作,就可以制作出很绚丽的相册,3D动态效果很好很强大。还可以插入背景音乐。可输出为swf的flash,exe可执行文件,html等。内含注册机,美国网站上找到的。灰常好用!

Global site tag (gtag.js) - Google Analytics