网页显示flash需“点击激活此控件……”的解决办法

web前端工程经常要在网页中加入一些flash,达到一种梦幻般的感觉,但是在加入flash后,鼠标移到flash上面的时候会出现虚框,而且显示“单击以激活控件”,好别扭啊,这对于用户来说是极不友好的,下面就说说如何解决这个问题。

先说说如何在网页加入flash,代码如下:

<OBJECT codeBase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0 height=227px width=950px classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000>
<PARAM NAME="movie" VALUE="flash.swf">
<PARAM NAME="quality" VALUE="high">
<PARAM NAME="wmode" VALUE="transparent">
<embed src="flash.swf" width="950px" height="227px" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent">
</embed>
</OBJECT>

不详细说明了,相信大家都明白,但是这样的方法会出现如题所说的问题,怎么解决呢,两种方法:

第一种方法:
就是将加入flash的代码<object></object>的部分用js输出,但是有一定的弊端,但是基本算是好用,小型或者要求不高的项目可用,我们将其整理成flash.js文件,并加入一些扩展的内容,内容如下:

function ShowControl(ElementID){
document.getElementById(ElementID).style.display="block";
}

function HideControl(ElementID){
document.getElementById(ElementID).style.display="none";
}

function InsertFlash(Flash,Width,Height,ID){
document.write("<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" ");
document.write("codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0\" ");
document.write("width=\"" + Width + "\" height=\"" + Height + "\" id=\"" + ID + "\">");
document.write("<param name=\"movie\" value=\"" + Flash + "\">");
document.write("<param name=\"quality\" value=\"high\">");
document.write("<param name=\"wmode\" value=\"transparent\">");
document.write("<embed src=\"" + Flash + "\" quality=\"high\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" ");
document.write("type=\"application/x-shockwave-flash\" width=\"" + Width + "\" height=\"" + Height + "\"></embed>");
document.write("</object>");
}

然后在<head></head>中加入如下代码:
<script type="text/javascript" src="flash.js"></script>

再在加入flash的地方加入如下代码:

<script type="text/javascript">InsertFlash("swf文件位置名称","宽度","高度","ID值(自定义)")</script>


举例:

<script type="text/javascript">InsertFlash("111.swf","100","100","myflash")</script>

第二种方法:
外国人写了一个swfobject.js的组建,专门针对web中加入flash的处理,符合W3C标准,功能很多,但是体积偏大,要10K,在大型项目或者严谨的项目中可应用,用法如下:
现在<head></head>中加入如下代码即可:
<script type="text/javascript" src="js/swfobject.js"></script>
<script type="text/javascript">
	swfobject.embedSWF("flash的位置名称", "flash上层容器的ID", "宽度", "高度", "版本号", "expressInstall.swf文件的位置和名称");
</script>

注:expressInstall.swf文件是adobe用于flash升级的文件

swfobject.js下载的地址为:

http://code.google.com/p/swfobject/downloads/list

目前最新版为2.2,写到这突发感想,google对互联网的贡献还真是伟大啊!

举例:

swfobject.embedSWF("111.swf", "logodiv", "100", "100", "9.0.0", "expressInstall.swf");

要想支持透明flash,可如下办法:

<script type="text/javascript">
	var flashvars = {}
	var attributes = {}
	var params ={allowFullScreen:'true',allowScriptAccess:'always',quality:'high',wmode:'Transparent'}
	swfobject.embedSWF("flash的位置名称", "flash上层容器的ID", "宽度", "高度", "版本号", "expressInstall.swf文件的位置和名称",flashvars,params,attributes);
</script>



完毕







因为Dreamwaver每次插入动画flash的时候,系统总是自动加载并插入一大段代码并生成AC_RunActiveContent.js的文件。为了简化其中的代码,所以自行把代码重新整理了一下,使其每次插入动画的时候,只要写入短短一行代码(例如:<script type="text/javascript">swf(455,200,'仿新浪焦点图','focus');</script>),就可以达到跟Adobe官方同样的效果。已经测试过了,兼容所有浏览器。如果有些浏览器显示不出来,可能因为动画的版本和浏览器支持的flash动画版本不一致所致。 对比:原来插入一个flash的代码。 <script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script> <script type="text/javascript"> AC_FL_RunContent( 'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0','title','仿新浪焦点图','name','仿新浪焦点图','width','455','height','200','id','仿新浪焦点图','src','focus','quality','high','pluginspage','http://www.macromedia.com/go/getflashplayer','movie','focus' ); //end AC code </script><noscript><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" title="仿新浪焦点图" name="仿新浪焦点图" width="455" height="200" id="仿新浪焦点图"> <param name="movie" value="focus.swf" /> <param name="quality" value="high" /> <embed src="focus.swf" width="455" height="200" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" name="仿新浪焦点图"></embed> </object></noscript> 而现在只要写<script src="swf.js" type="text/javascript"></script><script type="text/javascript">swf(455,200,'仿新浪焦点图','focus');</script>就可以达到同样的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值