`
wgcode
  • 浏览: 576875 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

总结调用Flash的几种方法

 
阅读更多

一、Adobe 提供的方法

<object width="200" height="200" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#4,0,0,0">
  <param name="src" value="clock.swf" />
  <param name="quality" value="high" />
  <embed src="clock.swf" type="application/x-shockwave-flash" width="200" height="200" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed>
</object>


这是非常经典与简单的一种调用方法,刚学网站建设时在很多小企业站点都可以看到,不过这种方法有一些明显缺陷:

不能检测播放器版本:如果用户 flash 版本过低,会出现 ActiveX 插件安装提示,而且用低版本播放器播放高版本的 flash 文件时存在很多问题,这些都影响用户对网站的正常使用。

不符合XHTML规范:虽然通过 <embed> 元素插入 flash 可以兼容非IE内核浏览器,但 <embed> 元素是 Netscape 公司创建的用来显示网页中 flash 的插件,不属于 HTML4.01规范中的一部分 (注:HTML5已支持 embed 标签)

其它问题:使用该方法时 <object> 与 <embed> 的参数必需一致,否则可能导致在不同浏览器效果不一致甚至无法正常加载
详细的介绍可以查看>>HO8001: 各浏览器下使用 OBJECT 元素和 EMBED 元素嵌入 Flash 存在差异,不过有一点值得一提, 直接使用 <embed> 兼容性也不错,IE 下也能正常显示,但并不推荐,原因同上。

二、不含 <embed> 的方法

1.Flash Satay Method

<object type="application/x-shockwave-flash data="c.swf?path=movie.swf" width="400" height="300">


该方法的详细介绍可以查看Drew McLellan的文章>>Flash Satay: Embedding Flash While Supporting Standards

2.仅含 <Object>

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="300" height="120"><param name="movie" value="http://www.macromedia.com/shockwave/download/triggerpages_mmcom/flash.swf"> <param name="quality" value="high"><param name="bgcolor" value="#FFFFFF"><!--[if !IE]> <--><object data="http://www.macromedia.com/shockwave/download/triggerpages_mmcom/flash.swf" width="300" height="120" type="application/x-shockwave-flash"><param name="quality" value="high"><param name="bgcolor" value="#FFFFFF"><param name="pluginurl" value="http://www.adobe.com/go/getflashplayer">FAIL (the browser should render some flash content, not this).</object><!--> <![endif]--></object>


这两种方法都没有用到 <embed> ,代码是符合XHTML规范,但仍然不能检测播放器版本,并且 Flash Satay 不兼容一些读屏软件。

三、SWFObject方法

SWFObject是一个 js 类库,它提供了一种易于使用、标准友好的方式来插入 flash 内容。最新版本为2.3 beta,源码托管在 Github,点击访问SWFObject。稳定版本为2.2,目前依然可以在 Google Code 访问并下载:Https://code.google.com/p/swfobject/

SWFOject的优点:

检查播放器版本:它能够检查客户端浏览器对 flash 插件的支持情况;

符合 XHTML 规范:使用 SWFObject 方法插入 flash 并不会在 HTML 文档中直接出现不友好的代码;

使用简单、便捷,特别是当一个页面需要插入多个 flash 时。

1.基本使用方法:

HTML 部分

<div id="altContent">这里是flash内容,当前的浏览器没有安装或者FlashPlyaer版本不够高,请从<a href="http://www.adobe.com/go/getflashplayer">这里</a>下载安装最新的FlashPlyaer</div>JavaScript 部分
<script type="text/javascript" src="swfobject.js"></script> <script type="text/javascript">    swfobject.embedSWF("myflash.swf", "altContent", "300", "120", "9.0.0", "expressInstall.swf"); </script>


embedSWF 参数解释:

参数1: swf 文件地址

参数2:swf 文件容器

参数3:flash 的宽度

参数4:flash 的高度

参数5:正常播放该 flash 的最低版本

参数6:版本低于当前要求时,执行该 swf 文件,跳转到官方下载最新版本的 flash 插件(可选)

2.高级使用方法(可传递参数、变量、属性):

HTML 部分

<div id="altContent">这里是flash内容,当前的浏览器没有安装或者FlashPlyaer版本不够高,请从<a href="http://www.adobe.com/go/getflashplayer">这里</a>下载安装最新的FlashPlyaer</div>JavaScript 部分
<script type="text/javascript" src="swfobject.js"></script> <script type="text/javascript"> var flashvars = {     id:"myid",     age:"myage",     nickName:"mynickname" } var params = {     menu: "false",     allowFullscreen: "false",     allowScriptAccess: "always",     bgcolor: "#ffffff",     wmode: "transparent" } var attributes = {     id: "myswfcontent",     name: "myswfcontent"} swfobject.embedSWF("myflash.swf", "altContent", "100%", "100%", "9.0.0", "expressInstall.swf", flashvars, params, attributes); </script>


也可以写成这样(不常用)


<script type="text/javascript" src="swfobject.js"></script> <script type="text/javascript">//不常用方法一,应该没人想这么写…var flashvars = {};flashvars.id:"myid";flashvars.age:"myage";flashvars.nickName:"mynickname";var params = {};params.menu: "false";params.allowFullscreen: "false";params.allowScriptAccess: "always";params.bgcolor: "#ffffff";params.wmode: "transparent";var attributes = {};attributes.id: "myswfcontent";attributes.name: "myswfcontent";swfobject.embedSWF("myflash.swf", "altContent", "100%", "100%", "9.0.0", "expressInstall.swf", flashvars, params, attributes);</script><script type="text/javascript">//不常用方法二,将初始化变量写成一句,代码简洁,但阅读困难,不推荐swfobject.embedSWF("myflash.swf", "altContent", "100%", "100%", "9.0.0", "expressInstall.swf", {id:"myid",age:"myage",nickName:"mynickname"}, {menu:"false",allowFullscreen:"false",allowScriptAccess:"always",bgcolor:"#ffffff",wmode:"transparent"}, {id:"myswfcontent",name:"myswfcontent"});</script>


初始化变量解释:

flashvars:json 对象,用来为 flash 传递初始化信息
params:flash 设置,是否显示按钮、是否全屏、是否允许访问 JS、背景颜色、窗口模式等
attributes:设置嵌入 flash 完成时 object 标签的 id,name等属性
embedSWF 参数解释:

swfobject.embedSWF(swfUrlStr, replaceElemIdStr, widthStr, heightStr, swfVersionStr, xiSwfUrlStr, flashvarsObj, parObj, attObj, callbackFn)

swfUrl(String ,必须)指定SWF的URL。
id(String ,必须)指定将会被Flash内容替换的HTML元素的id。
width(String,必须)指定SWF的宽。
height(String,必须)指定SWF的高。
version(String,必须)指定你发布的SWF对应的Flash Player版本(格式为:major.minor.release)。
expressInstallSwfurl(String,可选)指定expressInstall.swf的URL并在客户端FlashPlyaer版本低于version指定的数值时激活Adobe express install自动升级客户端的FlashPlyaer。
flashvars( Object ,可选)用name:value对指定你的flashvars。
params(Object ,可选)用name:value对指定你的嵌套object元素的params。
Attributes(Object, 可选)用name:value对指定object的属性。
callbackFn(JavaScript function, 可选)定义一个在执行embedSWF方法后,嵌入flash成功或失败后都可以回调的 JS 函数

该方法共有10个参数,前5个参数不能省略,后面的参数为可选,但如果不用某个参数,必需用 null 关键字点位;

swfobject.embedSWF("myflash.swf", "altContent", "100%", "100%", "9.0.0", "null", null, params, attributes);

四、jQuery SWFObject Plugin

jQuery SWFObject Plugin 目前版本为1.1.1,它是基于SWFObject 2.2 开发的 jQuery 插件。如果在项目中有使用到 jQuery ,则可以使用该插件,大小仅为 SWFObject 的十分之一。

注:以下 JavaScript 代码示例中都略去了 jQuery 与 jQuery SWFObject 调用的语句。

1.基本的使用方法:

HTML 部分

<div id="myFlash">    The "You don't have flash" message.Or any other backup content.</div>JavaScript 部分

<script type="text/javascript">$(document).ready(    function() {        $('#myFlash').flash('fireworks.swf');    });</script>


2.高级使用方法(可传递参数、变量、属性):

HTML 部分

<div id="myFlashVars"></div>JavaScript 部分

<script type="text/javascript">$(document).ready(    function () {        $('#myFlashVars').flash(            {                // 传入 flash url                swf: 'test_flashvars.swf',                // 传值                  flashvars: {                    name1: 'jQuery',                    name2: 'SWFObject',                    name3: 'Plugin'                }            }        );    });</script>


点击这里面查看官网与详细文档>>http://jquery.thewikies.com/swfobject/

分享到:
评论

相关推荐

    flash在C#中的应用

    消去Flash右键菜单有两种方法(本人愚笨,到目前只发现这两种): 方法一: 这个方法比较复杂,也比较繁琐,主要是用到API函数的调用。代码如下: #region 去掉Flash右键菜单,API函数的声明 private const...

    Flash伴侣

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

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

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

    FlashAirJS:FlashAir(TM)Javascript客户端库

    连接方法有几种准备方法。 通过Web浏览器直接访问。 任何现代的Web浏览器都可以通过键入主机URL( )浏览目录中的文件。 API访问。 FlashAir还提供API作为CGI调用的一种形式。 这是该库使用的方法。 支持Flash...

    flash shiti

    42.图形文件中,哪几种格式的矢量图能被Flash直接引用? A. *.ai B. *.eps C. *.cdr D. *.wmf 43.下图中哪几项可以打开平滑与整平工具? A. 从附属选项中挑选 和 钮 B. 从附属选项中挑选 和 钮 C. 选取...

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

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

    闪灵Flash相册模块独立后台版源代码

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

    asp.net 页面中添加普通视频的几种方式介绍

    一是通过调用window media player进行播放,二是通过调用replayer进行播放,三是通过调用flashplayer进行播放

    嵌入式Linux文件系统的设计和实践.nh

    嵌入式文件系统的几种解决方案 直接针对Flash设备的实现方案 基于DOC设备的JFFS. 基于MTD设备的JFFS VFS和JFFSZ 32MTD抽象层和 文件系统体系结构的设计 支持MTD设备JFFSZ的实现 3JFFSZ映象文件的生成 第四章嵌入式...

    低功耗测试周期性唤醒

    完整的MDK5工程,主要测试STM32L4几种低功耗模式,亲测电流在0.4ua左右,模式可选,且周期性唤醒 并且包含多种函数接口 可直接调用,FLASH读写结构体 FLASH读写ADC采集电压值 ADC采集电压 RTC实时时钟 RTC实时时钟...

    路由器密码恢复.doc

    1 密码恢复原理 (1)Cisco路由器保存了几种不同的配置参数,并存放在不同的内存模块中。Cisco系列 路由器的内存有:ROM,闪存(Flash memory),RAM,不可变RAM和动态内存(DRAM)等5种(其功能见表1)。一般情况下,...

    MSP430系列单片机实用C语言程序设计

    书中还介绍了MSP430 的几种典型应用,如软件模拟串行口、在线刷新 FLASH、实现中断嵌套等,并为其编写了完整代码,读者完全可以将其直接组合在自己的项目中。书中还讲 解了单片机领域编写程序的规范、程序结构的安排...

    ECSHOP设置及开发技巧汇总

    1.20 ecshop产品相关的图片有那几种 16 1.21 详细页面的积分 16 1.22 如何修改产品缩略图大小 16 1.23 如何设置ecshop货币格式和日期格式。 17 1.24 如何开取和关闭ecshop登陆验证码 17 1.25 如何修改个人帐户信息...

    GUI Builder v2.0.11

    2.自动生成键盘的驱动程序,有几种键盘的连接方式可选。 3.自动生成GUI界面,支持多级LCD菜单。 4.菜单数据采用索引表和变长数据格式。 5.菜单标题如果有重复的字符串,则字符串数据不重复写,只引用原串,大大减少...

    VC与Labview、Matlab编程论文资料[2].rar

    VC_中连接Oracle数据库的几种方法.pdf VC_串口通信中多线程技术的应用研究.pdf VC_和COM的预测控制算法的仿真研究.pdf VC_和Excel对象接口的研究与应用.pdf VC_和Matlab混合编程的语音识别研究.pdf VC_实现Excel操作...

    VC与Labview、Matlab编程论文资料

    VC_中连接Oracle数据库的几种方法.pdf VC_串口通信中多线程技术的应用研究.pdf VC_和COM的预测控制算法的仿真研究.pdf VC_和Excel对象接口的研究与应用.pdf VC_和Matlab混合编程的语音识别研究.pdf VC_实现Excel操作...

    VC与Labview、Matlab编程论文资料[4].rar

    VC_中连接Oracle数据库的几种方法.pdf VC_串口通信中多线程技术的应用研究.pdf VC_和COM的预测控制算法的仿真研究.pdf VC_和Excel对象接口的研究与应用.pdf VC_和Matlab混合编程的语音识别研究.pdf VC_实现Excel操作...

    Page Flip Image Gallery插件

    页面中的其它几种格式: •Flash Uploader:上传Flash •Browser Uploader:图片上传,如上图所示 •Upload Archive:把图片用ZIP的格式进行上传 •Add Form URL:使用外部图片,输入图片的URL地址 •Import from FTP ...

    emWin 5.26.rar

    自动生成键盘的驱动程序,有几种键盘的连接方式可选.3.自动生成GUI界面,支持多级LCD菜单.4.菜单数据采用索引表和变长数据格式.5.菜单标题如果有重复的字符串,则字符串数据不重复写,只引用原串,大大减少Flash.6.部分...

    Web实验报告(2).doc

    效果如下: 结构图: Img文件夹 jpg图片flash图片 根目录 yinyue文件夹 mp3音乐文件 Ziliao文件夹 课件压缩包 Html页面 实验总结: 通过本次的Web实验,我对网页制作及开发有了更深层的了解。制作过程中,运用了...

Global site tag (gtag.js) - Google Analytics