首先说一下解决CS5以上代码不自动提示的问题。flash pro从cs5开始加入了代码缓存限制,默认好像是800。会在右下角显示一个黄色的小三角感叹号。解决办法是修改注册表:
1、HKEY_CURRENT_USER > Software > Adobe > Flash 11 > Settings(cs5.5-11.5,cs6-12)
2、右键新建DWORD Value(32位)
3、重命名该键值Project File Cap
4、修改值1000-2000(十进制)
5、ok,重启flash
或者:编辑-首选参数-actionScript-缓存文件。
(今天按这里的说明尝试,在opera浏览器中成功,用的swfobject.js的方法,附原文地址网页显示flash需“点击激活此控件……”的解决办法)
web前端工程经常要在网页中加入一些flash,达到一种梦幻般的感觉,但是在加入flash后,鼠标移到flash上面的时候会出现虚框,而且显示“单击以激活控件”,好别扭啊,这对于用户来说是极不友好的,下面就说说如何解决这个问题。
先说说如何在网页加入flash,代码如下:
[html] view plain
copy
<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文件,并加入一些扩展的内容,内容如下:
[javascript] view plain
copy
function ShowControl(ElementID){
document.getElementByIdx_x(ElementID).style.display="block";
}
function HideControl(ElementID){
document.getElementByIdx_x(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>中加入如下代码:
[javascript] view plain
copy
<script type="text/javascript" src="flash.js"></script>
再在加入flash的地方加入如下代码:
[javascript] view plain
copy
<script type="text/javascript">InsertFlash("swf文件位置名称","宽度","高度","ID值(自定义)")</script>
举例:
[javascript] view plain
copy
<script type="text/javascript">InsertFlash("111.swf","100","100","myflash")</script>
第二种方法:
外国人写了一个swfobject.js的组建,专门针对web中加入flash的处理,符合W3C标准,功能很多,但是体积偏大,要10K,在大型项目或者严谨的项目中可应用,用法如下:
现在<head></head>中加入如下代码即可:
[javascript] view plain
copy
<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对互联网的贡献还真是伟大啊!
举例:
[javascript] view plain
copy
swfobject.embedSWF("111.swf", "logodiv", "100", "100", "9.0.0", "expressInstall.swf");
要想支持透明flash,可如下办法:
[javascript] view plain
copy
<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>
完毕