您的位置:首页 > Web前端 > HTML

符合XHTML1.0规范的flash植入方法

2007-03-31 01:01 344 查看
遇到一个问题:XHTML不支持embed标签,但是如果不用embed标签,那么在firefox中flash播放器就不会被调用。 查资料得知object标签符合XHTML规范,那么能不能用object标签在firefox中替代embed来调用flash播放器呢?
经过测验下面代码能在IE和Firefox中正常调用Flash播放器:


<object type="application/x-shockwave-flash"


data="layoutExampleApp.swf" >


<param name="movie" value="layoutExampleApp.swf" />


</object>

classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"属性要去掉。很明显他是在调用flash的com组件,非microsoft平台肯定不支持,取而代之的是type属性,来指定object的数据类型。firefox用data属性来定位flash文件,IE用param来定位文件。问题解决。
时间紧张,书写简单,尽请见谅。

embed标签是网景浏览器特有的,用来在网页中调用插件和播放器的。如果要编写规范的程序,那么肯定要对embed说不。

2007-04-05:补充说明一下,经过测验,上述的方法虽然能播放swf文件,但是存在很多问题。目前我发现的bug如下:
1.IE 中调用大个的swf有内存不能被正确回收。IEbug
2.IE+flex在frameset中,如果flex程序使用了ExtenalInterface.call的话,在关闭IE后会报一个错误,iframe同理。IEbug
3.Firefox+flex在frameset中tree的changedata事件如果使用ExtenalInterface.call会出现tree控件被锁死。

上述方法属于画蛇添足,没有必要这么做。

建议采取第三方的js脚本来插入swf,例如如果插入flash8的swf文件建议使用swfobject,如果是flex那么使用flexbuilder自带的AC_OETags.js。这样插入的swf文件还能修复一些flashplayer的bug和IE的一些限制。例如IE6对ActiveX控件的限制,必须点击一下swf文件才能激活flash动画。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: