7.3.2 静态嵌入Flash Player
如何使用SWFObject的静态方法嵌入Flash Player内容?
第1步:使用符合标准的代码嵌入Flash内容和备用内容 SWFObject的基本标签使用嵌套对象的方法(用专有IE条件注释),以确保跨浏览器支持,仅针对标签手段进行了优化,作为标准和替代方法。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>SWFObject - step 1`</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<div>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="780" height="420">
<param name="movie" value="myContent.swf" />
<!--[if !IE]>-->
<object type="application/x-shockwave-flash" data="myContent.swf" width="780" height="420">
<!--<![endif]-->
<p>Alternative content</p>
<!--[if !IE]>-->
</object>
<!--<![endif]-->
</object>
</div>
</body>
</html>
注:嵌套的对象方法需要双重对象定义(外部对象用于Internet Explorer,对象用于所有其他浏览器),您需要定义对象属性和嵌套参数元素两次。
需要的属性:
- classid(只用于外层元素,值一直是: clsid:D27CDB6E-AE6D-11cf-96B8-444553540000)
- type(只用于内层元素,值一直是: application/x-shockwave-flas)
- data(只用于内层元素,定义swf的路径:data="myContent.swf")
- width(定义swf的宽度,内外都用到)
- height(定义swf的高度,内外都用到) 需要的参数:
- movie(只用于内层元素,定义swf的路径:
<param name="movie" value="myContent.swf" />
)
注意:我们建议您不要使用codebase属性来指向服务器的Adobe Flash插件安装程序的URL,因为这是非法的,他只能访问当前的域。 我们建议在备用内容中添加tips,以便用户获得比下载Flash更好的体验。
怎么使用HTML来配置Flash内容?
你能在标签中加下面的属性:
- id
- name
- class
- align
可用下面的参数:
- play
- loop
- menu
- quality
- scale
- salign
- wmode
- bgcolor
- base
- swliveconnect
- flashvars
- devicefont (more info)
- allowscriptaccess (more info here and here)
- seamlesstabbing (more info)
- allowfullscreen (more info)
- allownetworking (more info)
为什么使用替代内容?
object元素允许您在其中放置替换元素,这些元素在未安装或不支持flash时显示。 他的内容也将被搜索引擎抓取,这是一个创建搜索引擎友好内容的好工具。 总而言之,当您希望您的内容可供没有插件的用户访问时,您应该使用替换内容,这样对搜索引擎友好,而且有访问者的提示,并且可以获得更好的用户体验而不是直接让用户下载插件。
第2步:将JavaScript库引在HTML页面的头部 SWFObject库是一个外部JavaScript文件。 一旦加载完成,SWFObject就会被执行,并且一旦dom元素加载完成,dom就会被执行。 所有浏览器都支持(IE,Firefox,Safari和Opera 9+),onload事件会被触发。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>SWFObject - step 2</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script type="text/javascript" src="swfobject.js"></script>
</head>
<body>
<div>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="780" height="420">
<param name="movie" value="myContent.swf" />
<!--[if !IE]>-->
<object type="application/x-shockwave-flash" data="myContent.swf" width="780" height="420">
<!--<![endif]-->
<p>Alternative content</p>
<!--[if !IE]>-->
</object>
<!--<![endif]-->
</object>
</div>
</body>
</html>
步骤3:用SWFObject库注册您的Flash内容,告诉SWFObject做什么
首先添加一个唯一的ID外部对象标签来定义你的Flash内容,第二种方法是添加swfobject.registerObject:
- 第一个参数(字符串,必需)指定标签中使用的ID。
- 第二个参数(字符串,必需)指定您的内容分配的Flash版本。它会激活Flash版本检测,以确定是否显示Flash内容或强制通过dom操作显示替换。 Flash的版本号通常由四个部分组成,major.minor.release.build,但SWFObject只识别前三位,所以“WIN 9,0,18,0”(IE)或“Shockwave Flash 9 r18”(其他浏览器)将被翻译为“9.0.18”。如果您只想测试主要版本,则可以省略次要版本号和分发版本号,例如“9”而不是“9.0.0”。
- 第三个参数,字符串(可选)可用于启动Adobe Express安装程序并指定Quick Install SWF文件的URL。当所需插件版本不可用时,“快速安装”将显示标准的Flash插件下载对话框,以替换您的Flash内容。项目中默认的expressInstall.swf文件被打包在一起。它还包括相应的expressInstall.fla和AS文件(位于src目录中),可让您创建自己的自定义快速安装。
注意,快速安装只会触发一次(他第一次被调用),他只支持在win和mac平台上的Flash Player 6.0.65版本,并且他需要的最小尺寸为310x137px。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>SWFObject v2.0 - step 3</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript">
swfobject.registerObject("myId", "9.0.0", "expressInstall.swf");
</script>
</head>
<body>
<div>
<object id="myId" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="780" height="420">
<param name="movie" value="myContent.swf" />
<!--[if !IE]>-->
<object type="application/x-shockwave-flash" data="myContent.swf" width="780" height="420">
<!--<![endif]-->
<p>Alternative content</p>
<!--[if !IE]>-->
</object>
<!--<![endif]-->
</object>
</div>
</body>
</html>
- 第四个参数(js函数,可选)用于定义一个回调函数,可以调用该函数来处理插件创建成功或失败时的情况。
<script type="text/javascript">
swfobject.registerObject("myId", "9.0.115", "expressInstall.swf");
</script>
小提示: 1.使用SWFObject HTML和JS生成器来帮助你编写代码。 2.反复步骤1和3,可将多个SWF文件嵌入到一个HTML页面中 3.引用活动对象元素的最简单方法是使用JavaScript API:swfobject.getObjectById(objectIdStr)