`
bdk82924
  • 浏览: 563572 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

用SWFObject的动态方法来嵌入Flash内容

 
阅读更多

转:http://gray.topdrupal.com/SWFObject-dynamic

 

第一步:用符合标准的标签创建替换内容

SWFObject的动态嵌入方法遵循渐进增强(progressive enhancement)的原则,当浏览器对JavaScript和Flash插件有足够支持的时候,SWFObject会用Flash内容替换HTML内容。首先定义你的替换内容,并且为它添加一个id属性:

代码如下:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
  3.   <head>
  4.     <title>SWFObject v2.0 dynamic embed - step 1</title>
  5.     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  6.   </head>
  7.   <body>
  8.     <div id="myContent">
  9.       <p>Alternative content</p>
  10.     </div>
  11.   </body>
  12. </html>

第二步:在HTML页面的head标签中包括SWFObject JavaScript类库

SWFObject的JavaScript类库由一个外部JavaScript文件(大小:10.7Kb,GZIPed:3.5Kb)组成。 SWFObject会在外部JavaScript文件被加载后立即被执行,并且对于那些支持DomLoad事件的浏览器,例如 IE、Firefox、Safari和Opera 9+,SWFObject将会在DOM被加载后完成所有的DOM操作,而如果浏览器不支持DomLoad事件,所有DOM操作将会在页面的onload事件被触发后执行。

代码如下:
  1. <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
  2.   <head>
  3.     <title>SWFObject v2.0 dynamic embed - step 2</title>
  4.     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  5.     <script type="text/javascript" src="swfobject.js"></script>
  6.   </head>
  7.   <body>
  8.     <div id="myContent">
  9.       <p>Alternative content</p>
  10.     </div>
  11.   </body>
  12. </html>

第三步:用JavaScript嵌入你的SWF

swfobject.embedSWF(swfUrl, id, width, height, version, expressInstallSwfurl, flashvars, params, attributes)有5个必须的参数和4个可选的参数:

  1. swfUrl(String,必须的)指定SWF的URL。
  2. id(String,必须的)指定将会被Flash内容替换的HTML元素(包含你的替换内容)的id。
  3. width(String,必须的)指定SWF的宽。
  4. height(String,必须的)指定SWF的高。
  5. version(String,必须的)指定你发布的SWF对应的Flash Player版本(格式为:major.minor.release)。
  6. expressInstallSwfurl(String,可选的)指定express install SWF的URL并激活Adobe express install 。
  7. flashvars(String,可选的)用name:value对指定你的flashvars。
  8. params(String,可选的)用name:value对指定你的嵌套object元素的params。
  9. attributes(String,可选的)用name:value对指定object的属性。

注意:在不破坏参数顺序的情况下,你可以忽略可选参数。如果你不想使用一个可选参数,但是会使用后面的一个可选参数,你可以简单的传入false作为参数的值。对flashvars、 params和 attributes这些JavaScript对象来说,你也可以相应的传入一个空对象{}。

代码如下:
  1. <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
  2.   <head>
  3.     <title>SWFObject v2.0 dynamic embed - step 3</title>
  4.     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  5.     <script type="text/javascript" src="swfobject.js"></script>
  6.     <script type="text/javascript">
  7.     swfobject.embedSWF("myContent.swf", "myContent", "300", "120", "9.0.0");
  8.     </script>
  9.   </head>
  10.   <body>
  11.     <div id="myContent">
  12.       <p>Alternative content</p>
  13.     </div>
  14.   </body>
  15. </html>

怎样配置你的Flash内容?

你可以为你的object元素添加下面这些常用的可选属性(attributes):

  • id
  • name
  • styleclass(不使用class,因为class也是ECMA4的保留关键字)s
  • align

你可以使用下面这些专用于Flash的可选param元素

  • play
  • loop
  • menu
  • quality
  • scale
  • salign
  • wmode
  • bgcolor
  • base
  • swliveconnect
  • flashvars
  • devicefont
  • allowscriptaccess
  • seamlesstabbing
  • allowfullscreen
  • allownetworking

怎样用JavaScript对象来定义你的flashvars、params和attributes?

你最好用对象的字面量(Object literal notation)来定义JavaScrpt对象,例如这样:

代码如下:
  1. <script type="text/javascript">
  2. var flashvars = {};
  3. var params = {};
  4. var attributes = {};
  5. swfobject.embedSWF("myContent.swf", "myContent", "300", "120", "9.0.0","expressInstall.swf", flashvars, params, attributes);
  6. </script>
你可以在定义对象的时候添加你的name:value对(注意:请确保不要再对象中的最后一个name:value对后面加上逗号):
  1. <script type="text/javascript">
  2. var flashvars = {
  3.   name1: "hello",
  4.   name2: "world",
  5.   name3: "foobar"
  6. };
  7. var params = {
  8.   menu: "false"
  9. };
  10. var attributes = {
  11.   id: "myDynamicContent",
  12.   name: "myDynamicContent"
  13. };
  14. swfobject.embedSWF("myContent.swf", "myContent", "300", "120", "9.0.0","expressInstall.swf", flashvars, params, attributes);
  15. </script>
或者在对象创建之后用点号添加属性(properties)和值:
  1. <script type="text/javascript">
  2. var flashvars = {};
  3. flashvars.name1 = "hello";
  4. flashvars.name2 = "world";
  5. flashvars.name3 = "foobar";
  6. var params = {};
  7. params.menu = "false";
  8. var attributes = {};
  9. attributes.id = "myDynamicContent";
  10. attributes.name = "myDynamicContent";
  11. swfobject.embedSWF("myContent.swf", "myContent", "300", "120", "9.0.0","expressInstall.swf", flashvars, params, attributes);
  12. </script>
上面的代码也可以这样写(为那些喜欢单行代码的顽固脚本程序员准备的不易读的简写版本):
  1. <script type="text/javascript">
  2. swfobject.embedSWF("myContent.swf", "myContent", "300", "120", "9.0.0","expressInstall.swf", {name1:"hello",name2:"world",name3:"foobar"}, {menu:"false"}, {id:"myDynamicContent",name:"myDynamicContent"});
  3. </script>
如果你不想使用一个参数,你可以将它定义为false或者一个空对象:
  1. <script type="text/javascript">
  2. var flashvars = false;
  3. var params = {};
  4. var attributes = {
  5.   id: "myDynamicContent",
  6.   name: "myDynamicContent"
  7. };
  8. swfobject.embedSWF("myContent.swf", "myContent", "300", "120", "9.0.0","expressInstall.swf", flashvars, params, attributes);
  9. </script>
flashvars对象是一个为了增加易用性而设计的作为快捷方式的参数,所以你可以先忽略它,然后在params对象中指定你的flashvars:
  1. <script type="text/javascript">
  2. var flashvars = false;
  3. var params = {
  4.   menu: "false",
  5.   flashvars: "name1=hello&name2=world&name3=foobar"
  6. };
  7. var attributes = {
  8.   id: "myDynamicContent",
  9.   name: "myDynamicContent"
  10. };
  11. swfobject.embedSWF("myContent.swf", "myContent", "300", "120", "9.0.0","expressInstall.swf", flashvars, params, attributes);
  12. </script>

提示

  • 使用SWFObject 2.0 HTML和JavaScript代码生成器(SWFObject 2.0 HTML and JavaScript generator)来帮助你创建代码:。
  • 重复第一步和第三步来在一个HTML页面里面嵌入多个SWF文件。

参考:

下载SWFObject 2.x,目前最新版本为2.1,swfobject_2_1.zip是JavaScript主体程序,另外两个是生成代码的工具。
SWFObject 2 代码生成器 v1.2 部分汉化版,可以用这个工具在线生成HTML代码。
SWFObject 2.x 简介
用SWFObject的静态方法来嵌入Flash内容

 
 

 

分享到:
评论

相关推荐

    SWFObject: 基于Javascript的Flash媒体版本检测与嵌入模块

    当用户浏览器支持Flash且安装了对应的Flash Player时,SWFObject会使用JavaScript动态创建`&lt;object&gt;`和`&lt;embed&gt;`标签来替换预留的HTML内容,从而嵌入Flash媒体。如果用户的浏览器不支持Flash或未安装相应版本的Flash...

    flash嵌入web页面(swfobject)

    3. 插入SWF:如果用户已安装Flash Player,SWFObject会使用JavaScript动态替换占位符内容,插入SWF对象。 4. 备用内容:对于不支持Flash的浏览器,占位符中的HTML内容将正常显示,确保所有用户都能看到网页内容。 ...

    swfobject+swffit实现flash嵌入网页自适应大小

    当用户改变浏览器窗口大小或容器元素尺寸时,可以调用这个方法来更新Flash内容的尺寸。 `swffit`则是一个专门用于Flash内容自适应的JavaScript库,它可以确保Flash对象在任何尺寸的容器内都能完整显示,不会因为...

    SWFObject_2.0_使用方法

    怎样用 SWFObject 2.0 的动态发布方法来嵌入 Flash 内容? #### 6-1. 第一步:用符合标准的标签创建替换内容 - 使用 `&lt;div&gt;` 或 `&lt;p&gt;` 等标签来创建替换内容,确保即使 Flash 内容未加载成功,用户也能看到有意义...

    AS3与JS交互通信(使用swfObject插入Flash)

    2、使用swfObject向页面中插入Flash文件。 3、使用Flash中的ExternalInterface.call方法和fscommand方法对JS进行调用与传送数据。 4、使用Flash中的ExternalInterface.addCallback方法创建接口,使JS能够调用AS中的...

    使用SWFObject.js文件嵌入swf文件的应用

    SWFObject.js是一个JavaScript库,专门用于在HTML页面中无缝地嵌入Adobe Flash内容,如SWF文件。这种技术在过去的网页设计中非常流行,因为Flash可以提供动态交互和丰富的媒体体验。以下是对SWFObject.js及其应用的...

    SWFObject.js Flash性能增强插件

    5. **易于使用**:SWFObject.js的API简洁明了,开发者可以通过简单的JavaScript调用来实现Flash内容的插入和管理,降低了开发难度。 6. **动态替换**:SWFObject.js可以替换HTML元素,使Flash内容无缝融入网页布局...

    swfobject

    **SWFObject:高效插入Flash内容的技术** SWFObject 是一个JavaScript库,广泛用于在网页中无缝、动态地插入Adobe Flash内容。这个小巧的库解决了早期网页中嵌入Flash时出现的一些问题,如浏览器兼容性、自适应性...

    swfobject 2.0

    这个库的出现解决了早期在网页上插入Flash时存在的兼容性和可访问性问题。标题"swfobject 2.0"指的是该库的第二个主要版本,通常会包含性能提升、新功能和错误修复。 SWFObject的核心功能是通过动态替换HTML代码来...

    SWFObject 插件

    1. **对象和参数的动态修改**:在页面加载后,你可以使用SWFObject的方法来修改已插入的Flash对象的属性和参数。 2. **事件监听**:SWFObject允许你监听Flash对象的事件,如加载完成、错误等,从而实现更复杂的交互...

    SWFObject2.2

    SWFObject2.2通过JavaScript技术,实现了动态检测浏览器对Flash的支持情况,并根据结果选择性地插入Flash内容。这种方法既照顾了不支持Flash或者禁用了Flash插件的用户,也确保了支持Flash的用户能正常观看Flash内容...

    swfobject 2.2 无虚边框加载flash显示组件.zip

    2. **动态嵌入**:SWFObject允许开发者通过JavaScript动态地将SWF文件(即Flash内容)插入到HTML页面中。这使得在不刷新页面的情况下更新或替换Flash内容成为可能。 3. **无虚边框处理**:虚边框通常出现在Flash...

    swfobject2.2

    SWFObject 2.2 提供了一种优雅的“渐进增强”方法来嵌入SWF(Shockwave Flash)文件。它首先隐藏Flash内容,然后使用JavaScript检测浏览器是否支持Flash。如果支持,就会动态插入或替换HTML元素以显示Flash内容;...

    swfobject 网页载入flash swf JavaScript 代码

    例如,以下是一个简单的SWFObject嵌入代码示例: ```html &lt;!DOCTYPE html&gt; &lt;script src="swfobject.js"&gt; 如果你能看到这段文字,那可能是因为你的浏览器不支持Flash或者没有启用Flash。 swfobject....

    swfobject 2.2 去除网页Flash(SWF文件)的虚线框

    本文将深入探讨如何使用swfobject 2.2这个JavaScript库来解决这个问题,确保Flash内容在网页中完美无瑕地呈现。 首先,我们需要了解swfobject。swfobject是一个开源的JavaScript库,由格雷格·劳(Greg Lafrance)...

    SWFObject

    1. **Flash内容嵌入**:SWFObject利用JavaScript动态插入`&lt;object&gt;`和`&lt;embed&gt;`标签,确保Flash内容在用户浏览器中正确显示。它会检测浏览器是否安装了合适的Flash插件,如果没有,可以提供一个备选的HTML内容,如纯...

    flash swfobject.js实例360室内装饰图片全景查看

    3. **使用SWFObject.js**:为了在网页上展示这个Flash应用,开发者会利用SWFObject.js来编写JavaScript代码,确保Flash内容正确地插入到HTML文档中,并根据用户的浏览器环境进行适配。 在压缩包文件“texiao7368_...

    swfobject.js代替JavaScript实现点击按钮显示Flash动画

    在这个场景下,`swfobject.js` 是一个非常实用的工具,它能够帮助开发者更方便地嵌入和控制Flash内容,而无需编写大量的JavaScript代码。本文将详细讲解如何利用`swfobject.js`来实现在点击按钮后显示Flash动画的...

Global site tag (gtag.js) - Google Analytics