站长论坛

标题: flash文件出现灰色虚线框的解决方法 [打印本页]

作者: lbsong    时间: 2007-9-14 11:45
标题: flash文件出现灰色虚线框的解决方法
今天有客户反映首页flash有点问题, load页面后,flash文件周围出现了一个2px灰色的虚线边框,上网查了一下发现了这篇文章,方法还挺实用的。后来发现本站首页的flash也出现这样的虚线框,稍作了修改,感觉好多了:)

Ms在2-28发布了KB912945升级包,直接对ActiveX影响:
Adobe Reader
Apple QuickTime Player
Macromedia Flash
Microsoft Windows Media Player
Real Networks RealPlayer
Sun Java Virtual Machine
      安装了该升级包后,页面上的Flash动画仍然正常播放。
      只是当你把鼠标光标移动到Flash文件时,会看到多了一个2px灰色的虚线边框,同时会提示激活。
      据一些消息说,Ms可能还是要改变IE上的ActiveX显示方式。
最坏的结果是,网页上的ActiveX(包括Flash)内容都要先点一下激活了才能观看.但如果flash需要和用户进行交互。例如按钮,菜单之类,那就需要多点一下,这样不仅不美观,也很麻烦。当然,这也有解决方法,MM官方就发表了一篇文章:http://www.macromedia.com/devnet/activecontent 同时,还找到了另一篇:http://blog.deconcept.com/flashobject/ 或者使用 Flash Object 替换现有的 Flash 控件插入方式(<object>,<embed>)。代码和Macromedia Dreamweaver 8.02转换的差不多,Dreamweaver改变了插入Flash的代码方式,但是这个方式代码比较多,而且也需外调JS。但由于插入方便所以建议更新8.02升级包。

官方地址:http://blog.deconcept.com/flashobject/
目前最新版本:FlashObject 1.3
下载地址:http://blog.deconcept.com/flashobject/flashobject1-3.zip

特点:
1、支持所有flash内置参数设置。且设置更简单方便。
2、内嵌flash player升级探测器,并提示升级。
3、完全通过XHTML 1.0 Strict验证。
4、可以解决IE升级对flash的影响,支持绝大部分浏览器版本。

使用方法:
1、首先下载上面的flashobject.js文件,放到你的网页目录下。
2、调用js文件,在<head></head>中加入:
<script type="text/javascript" src="flashobject.js"></script>
3、设置需要插入flash的htm代码:
<div id="flashcontent">这里放上你想替换flash的文字。</div>
4、在上面代码后添加flash的设置代码:
<script type="text/javascript">
   var fo = new FlashObject("movie.swf", "mymovie", "200", "100", "7", "#336699");
   fo.write("flashcontent");
</script>

上面FlashObject中的基本参数设置依次为:文件地址,ID,宽度,高度,flash版本,背景色。
可选参数有:
useExpressInstall: 快速升级flash player 值为ture/false;
quality:播放品质,默认为"high";
xiRedirectUrl:指定完成(useExpressInstall)快速升级player后的定向网址。
redirectUrl:指定flash player版本不正确的定向网址。
detectKey:flash检测的地址参数,默认为detectflash。如:要不检测flash,可以在网址后面加上?detectflash=false。

fo.write("flashcontent");是把flash内容写到id="flashcontent"里。

Flash参数设置:

一般的flash参数设置为:
<param name="quality" value="high">
<param name="wmode" value="transparent">

而FlashObject的参数设置为:
<script type="text/javascript">
   var fo = new FlashObject("movie.swf", "mymovie", "200", "100%", "7", "#336699");
   fo.addParam("quality", "low");
   fo.addParam("wmode", "transparent");
   fo.addParam("salign", "t");
   fo.write("flashcontent");
</script>

更多的的参数请参照Macromedia的详细介绍:http://www.macromedia.com/cfusio ... dex.cfm?id=tn_12701

Flashvars变量设置:

一般的是通过Flashvars来给flash条件变量:
<param name="FlashVars" value="variable1=value1&variable2=value2&variable3=value3">

而FlashObject后的变量设置为:
<script type="text/javascript">
   var fo = new FlashObject("movie.swf", "mymovie", "200", "100", "7", "#336699");
   fo.addVariable("variable1", "value1");
   fo.addVariable("variable2", "value2");
   fo.addVariable("variable3", "value3");
   fo.write("flashcontent");
</script>
这样设置后,所有的变量就马上传到flash的_root上了。

另外,FlashObject还提供了一个getQueryParamValue()函数来调用URL网址串的参数。
例如网址:http://www.example.com/page.html ... mp;variable2=value2
你可以通过以下方法来把上面的参数传递给flash。
<script type="text/javascript">
   var fo = new FlashObject("movie.swf", "mymovie", "200", "100", "7", "#336699");
   fo.addVariable("variable1", getQueryParamValue("variable1"));
   fo.addVariable("variable2", getQueryParamValue("variable2"));
   fo.write("flashcontent");
</script>

同时,getQueryParamValue()还支持从location.hash读取变量。例子:
http://www.slideshowpro.net/demo/demo_default.php


Flash player的快速安装功能

FlashObject完全支持Flash Player的快速安装功能。通过在flash的第一帧添加一段AS代码就可以轻松达到检测用户Flash Player版本,并提示更新的功能。expressinstall.as代码如下:

#include "expressinstall.as"
var ExpressInstall = new ExpressInstall();
if (ExpressInstall.needsUpdate) {

var upgradeMsg = attachMovie("upgradeMsg_src", "upgradeMsg", 1);
upgradeMsg._x = Stage.width / 2;
upgradeMsg._y = Stage.height / 2;

upgradeMsg.upgradeBtn.onRelease = function() {
  ExpressInstall.init();
}
stop();
}

注意要把上面的AS放到主时间轴第一帧。并且这一帧上不要放任何其他内容。具体示例:
http://blog.deconcept.com/flashobject/expressinstall.html




欢迎光临 站长论坛 (http://www.tzlink.com/bbs/) Powered by Discuz! X3.2