`
wgcode
  • 浏览: 593758 次
  • 性别: 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/

分享到:
评论

相关推荐

    js调用AS flash函数

    总结来说,JS调用AS的Flash函数是通过`ExternalInterface`接口实现的,它允许在JS和AS之间建立双向通信,使得动态内容的实现更为丰富和灵活。在实践中,开发者需要考虑安全、兼容性和数据转换等问题,以确保在各种...

    vc调用flash代码

    总的来说,VC调用Flash控件播放视频涉及到以下几个步骤: 1. 引入Flash ActiveX控件。 2. 实例化并设置控件属性。 3. 播放SWF文件。 4. 注册并处理Flash控件的事件。 这个过程需要对VC编程、COM接口以及ActiveX控件...

    js与as通信,js调用flash的方法

    本文将深入探讨如何实现JS与AS的交互,以及如何通过JS调用Flash中的方法。我们将通过几个关键知识点来理解这一过程。 首先,我们需要了解ExternalInterface API。这是Adobe Flash Player提供的一个接口,允许...

    百度地图FLashAPI调用方法

    调用Flash API的方法主要通过ActionScript实现。如果你不熟悉ActionScript,可能需要学习一些基础概念,如变量、函数、类等。例如,你可以创建一个地图实例,设置地图类型(如普通地图、卫星地图等)和视野范围: `...

    mfc+flash 及其交互

    3. **事件处理**:为了实现MFC调用Flash,我们需要监听Flash中的事件,然后触发相应的MFC函数。这通常涉及到注册事件委托,如Delegate.h文件可能定义了这样的委托类。在FlashControl.cpp或mfcFlash.cpp中,会注册...

    STM32调用FLASH读写数组的api函数(简单易懂).rar

    因此,每次调用Flash API后,都要检查返回状态,如`HAL_OK`表示成功,其他值表示失败,需要根据错误码采取相应措施。 6. **保护Flash**:为了防止意外修改关键数据,可以设置Bootloader或用户配置区域的保护,防止...

    flash+xml调用源文件

    在IT行业中,Flash和XML是两种非常重要的技术,它们经常被结合使用以实现动态内容的交互和展示。本文将深入探讨“Flash+XML调用源文件”的相关知识点,包括Flash的基本概念、XML的作用以及如何在Flash中使用XML来...

    易语言与FLASH交互

    在与Flash交互时,通常我们需要用到以下几种技术: 1. **ActionScript通信接口**:ActionScript是Flash中的脚本语言,用于控制Flash影片的行为。易语言可以通过调用ActionScript提供的接口,如ExternalInterface,...

    仿新浪FLASH焦点图调用(调用代码公布)

    【仿新浪FLASH焦点图调用】是一种常见的网页设计技术,用于在网站上展示一组动态切换的图片或内容,通常作为首页的重要吸引点。这个技术灵感来源于新浪网的新闻焦点图,它通过Flash技术实现了平滑的过渡效果和用户...

    Flash客户端-调用REST地图服务的同时使用5.0预缓存

    结合SuperMap iClient for Flash客户端调用REST地图服务,预缓存可以显著提高地图加载速度,特别是在移动设备或网络条件较差的环境中,预缓存的作用更加明显。通过智能地利用本地资源,可以创建出更流畅、响应更快的...

    Flash8中几种画图工具

    本教程重点介绍了几种关键的画图工具,帮助用户利用ActionScript 2.0(AS2.0)进行更高级的图形绘制,包括画圆、弧线、虚线以及五角星等。 首先,我们来看“画圆”这个功能。在Flash8中,使用AS2.0可以动态地绘制...

    as与js方法的相互调用

    调用JS的方法非常直接,主要分为以下几步: 1. **导入包**:在AS代码中,你需要导入`flash.external.ExternalInterface`包。 ```actionscript import flash.external.ExternalInterface; ``` 2. **调用JS函数**:...

    ActionScript与JavaScript相互调用

    在实际应用中,开发者可能会遇到以下几种情况: 1. **从Flash调用JavaScript**:有时候需要从Flash影片中控制浏览器的行为,例如打开新窗口、调整窗口位置或滚动页面等。由于这些功能无法直接通过ActionScript实现...

    易语言flash看视频

    在易语言中,可以使用ActiveX控件接口来调用Flash Player控件,从而实现视频播放。 5. **事件驱动编程**:在设计Flash视频播放器时,你需要监听并响应各种用户交互事件,如播放、暂停、停止、快进等。易语言的事件...

    用JTAG烧写Flash的方法

    ### 用JTAG烧写Flash的方法 #### 一、引言 随着电子技术的发展,Flash存储器因其存储容量大、密度高的特点,在嵌入式系统领域得到了广泛应用。然而,对于焊接在电路板上的Flash存储器而言,直接烧写操作存在较大...

    JavaSript访问flash例子

    3. **js调用flash中的方法(去除IE激活框的swf插入法).html** - 这个文件可能包含了一种优化的方法,用于在Internet Explorer中避免显示烦人的激活框,同时仍能保持JavaScript和Flash之间的交互。 4. **...

    调用灵活的flash焦点图轮换

    在“调用灵活的Flash焦点图轮换”中,我们主要关注以下几个关键知识点: 1. **Flash组件**:Flash可以创建自定义组件,用于处理特定功能,如图片轮换。开发者可以设计一个Flash组件,包含图片显示、切换动画、控制...

    flash与unity3D交互

    描述中提到的"几种常用的方法和代码实现"可能包括以下几点: 1. **加载方式**:在Unity中,可以使用Unity的WebPlayer插件或者Unity WebGL支持来加载SWF格式的Flash内容。这些加载方法通常涉及Unity的`WWW`类或`...

    js调flash的方法

    然后在JavaScript中,你可以像调用普通JavaScript函数一样调用Flash函数: ```javascript var result = flashcontent.jsCallFlash("Hello, Flash!"); console.log(result); // 输出 "Data received from JS: Hello, ...

    mfc显示flash编程的实现方法

    3. **播放Flash**:调用`Play()`方法播放加载好的Flash内容。 以下是一段示例代码,展示了如何在对话框中加载并播放Flash文件: ```cpp BOOL CFlashDemoDlg::OnInitDialog() { CDialogEx::OnInitDialog(); RECT...

Global site tag (gtag.js) - Google Analytics