Flash虚线框

来源:互联网 发布:淘宝首页全屏去店招 编辑:程序博客网 时间:2024/04/30 10:38
转自:

http://www.blueidea.com/tech/multimedia/2006/4322.asp

http://hi.baidu.com/%CA%A9%CF%B4%D4%BC%BA%B2/blog/item/b4fa3dfafa26752f4f4aea25.html

解决这个问题的方法:
微软由于种种原因,在 sp2 后限制了 IE 的 ActiveX 的使用模式,就是在页面中的 ActiveX 有一个虚框,需要用户点击一次才能正常交互。Flash是作为一个 ActiveX 嵌入到网页中的,所以它也会受牵连,只有通过 JS 嵌入 Flash 才能解决这个问题。

第二个链接里边提到的第一个方法,已验证。

自从 MS 为 Flash 控件专利把 IE 修改后,大家鼠标都要多点一次,这也罢了,但鼠标移过去上面多出个虚线框可着实难看。

为此各家都想出解决办法,可以看看 Sina、Sohu、163等

一般都是使用脚本 .write 出来,用的广的比如 SWFObject 的,前面我说的FLASH图片轮播、切换效果,仿新浪、CCTV中一个就使用的这个

但使用都比较麻烦

现在介绍个新的 ObjectWrap
ObjectSwap提供的实现只需要在<head>中引入一个脚本。虽然也是使用脚本,但其逻辑是在页面加载完成后,重写一次<object>标签来实现自动激活。页面中的flash依然是标准的HTML。不需要通过document.write写入。而且对于禁用js的用户Flash依然可以正常显示。这应该算是最unobtrusive的一种实现了。

使用:只要在 head 头中添加下面代码,连接这个 ObjectWrap Js,其他就不用管了,加载网页的时候会自动对页面中的 object 进行重写,激活问题就解决了
<script type="text/javascript" src="objectSwap.js"></script>

附件:objectSwap.zip (2007-1-30 11:22, 2.27 K)


dreamweaver公司也推出了解决办法
升级到dreamweaver8.02添加是会加入一个脚本,插入的flash文件就没有虚线框了
在script目录下添加一个脚本

script/AC_RunActiveContent.js

我没有正版的dreamweaver但是在网上找到了dreamweaver8添加的这个脚本

现在添加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=6,0,29,0','width','450','height','105','src','snow','quality','high','pluginspage',http://www.macromedia.com/go/getflashplayer','wmode','transparent','movie','snow','menu','false' ); //end AC code
</script>
要注意,添加的flash的文件名不能带扩展名要去掉.swf文件名



附dw8.02的升级地址
http://download.macromedia.com/pub/dreamweaver/updates/dw_8/8_0_2/win/dw8_802_update_cn.exe



附件:例子.zip (2007-1-30 11:34, 18.43 K)



Macromedia 公司的swfobject脚本解决方案

添加一个外接的swfobject.js文件
<head>
<script type="text/javascript" src="swfobject.js"></script>
</head>
<body>
<div id="flashcontent">
<strong>You need to upgrade your Flash Player</strong>
Javascript turned off will see this. Content here allows you to leave out <code>noscript</code>
不支持flash时显示的文字
</div>
<script type="text/javascript">
// <![CDATA[

var so = new SWFObject("so_tester.swf", "sotester", "300", "300", "8", "#FF6600");
so.addVariable("flashVarText", "this is passed in via FlashVars for example only"); // this line is optional, but this example uses the variable and displays this text inside the flash movie
so.write("flashcontent");

// ]]>
</script>
</body>

在你的 HTML 页面头部区嵌入这个脚本文件:

<script type="text/javascript" src="swfobject.js"></script>


在你的 HTML 中写一个用来放 Flash 的容器,比如


<div id="flashcontent">
这里放替换内容,用来在 Flash 无法显示时显示。
</div>

使用脚本替换这个内容:

<script type="text/javascript">
var so = new SWFObject("movie.swf", "mymovie", "200", "100", "7", "#336699");
//参数意思: 地址,Flash 的 id(不是容器的 id),宽,高,版本需求,背景颜色
//这是最基本的,如果你要高级的设置,就仔细翻翻说明吧。
so.write("flashcontent");
</script> 

这脚本可以写在 HTML 中也可以写在外部 .js 文件中。

OK


完整的例子和swfobject.js脚本文件

[ 本帖最后由 hanshen 于 2007-1-30 11:49 编辑 ]



附件:swfobject1-4.zip (2007-1-30 11:42, 39.87 K)



新浪的解决办法也是插入一个外部链接的js脚本

<script type="text/java" src="http://image2.sina.com.cn/home/sinaflash.js"></script>

通过如下脚本在HTML中写入Flash广告:
<script type="text/javascript">
var objFlash = new sinaFlash("http://ad4.sina.com.cn/200611/17/73696_gundong.swf","", "279", "56", "7", "", false,"high");
objFlash.addParam("wmode", "opaque");
objFlash.write("flashcontent_02AE4A");
</script>


附:sinaflash.js脚本文件打包



附件:sinaflash.zip (2007-1-30 12:06, 1.69 K)

一个老外的解决方法

插入ufo.js

附完整例子



附件:ufo3_12.zip (2007-1-30 12:07, 23.26 K)



另类的解决方式(ie7中无效)
//只要在 </body> 后面加上一行
<script src="javascript:'document.body.innerHTML+=''';"></script>




原创粉丝点击