SWFobject:使用Javascript操作Flash
一位同学今天找我帮他做一个页面,静态的 html 页面,要求在页面中放入多个 Flash 小游戏的链接和一个游戏区域,通过 Javascript 操作 flash,点击小游戏的链接之后在游戏区域中显示所选的 flash,无需刷新页面实现 flash 的更换。
熟悉 javascript 的朋友都知道,用这种方法操作图片是非常简单的,只需要通过 DOM 修改 img 标签的 src 属性即可实现图片的更换。而我们常见的页面中的 flash 都是使用 object、embed 等标签,这些标签并不是标准的 xhtml 标签,所以不能通过 DOM 来操作。
这个问题把我难住了,于是马上到 google 寻找答案,结果一不小心来到了 aw 的这篇文章:SWFObject:基于Javascript的Flash媒体版本检测与嵌入模块。文章中详细的介绍了 SWFObject,使用它可以方便地在 html 中使用 javascript 插入 flash(.swf文件),方法如下:
1、在 html 中包含 swfobject.js 文件,并为 swf 文件预留一个 html 结点(这个 html 结点内的所有内容都会在客户端被 flash 资源替换,当客户端没有安装 flash播放器的时候,这些内容会显示出来。这一特色在 SEO 以及对用户体验方面非常有必要)。
<div id="flashcontent">
This text is replaced by the Flash movie.
</div>
2、在 js 中创建一个新的 SWFObject 实例,设置参数,写入 html 中预留的节点中。
var so = new SWFObject("movie.swf", "mymovie", "200", "100", "7", "#336699");
so.write("flashcontent");
</script>
这6个参数的意义:
- swf - SWF文件路径
- id - 您为这个SWF文件分配的id值,它将用于给embed与object标签设定name属性,以便于可以支持swliveconnect的功能,如动态传入变量
- width - 宽度
- height - 高度
- version - FlashPlayer需要的版本号,它可以详细到 ‘主版本号.小版本号.细节’,例如:”6.0.65″。一般地,我们只需传入主版本即可,例如:”6″。
- background-color - Flash资源的背景色,16进制格式
(以上代码和说明均摘自 aw 的原文,swfobject.js 的下载地址也请参看原文。原文中还有很多细节的东西,由于我基本不懂 flash,而且前面的这些对我已经够用了,所以就不再引用。感兴趣的朋友可以查看原文,感谢 aw 的文章。)
这样就好了,我只需要在链接中把 flash 的文件路径传递给 javascript 即可,这样就可以在一个页面中切换多个 flash 的显示,具体的代码很简单,就不再写了。
6 条评论(我有话要说)
1 Pingbacks & Trackbacks
-
Pingback @2007-12-23 17:01
看起来好像很高深,不过,我不玩Flash…
[回复]
小胖,来接受我的点名吧…顺便有10G空间可以送…希望你来参加啊…哈哈…
[回复]
@sofish 好的,我看一下
[回复]
通过embed的ID,JS直接更改的SRC,也就是XXX.SWF就行了
[回复]
我曾经测试过,那样是无效的。
[回复]