网站制作学习网Flash→正文:去掉flash虚线框
字体:

去掉flash虚线框

Flash 2008/3/12 9:15:48  点击:不统计

我们知道在以前Flash动画虚线框是不存在的,那么为什么最近会出现这个现象呢?原来微软考虑到IE浏览器的安全性问题,针对IE发布了一项更新补丁,禁止了IE浏览器的ActiveX控件自动激活功能。这样就造成了本来可以直接点的Flash,现在要先多点一下这个虚线框来激活了。



去掉虚线框



既然能加的上去,就一定能去的掉。首先在网页代码之间插入如下代码:



<SCRIPT src="objectSwap.js" type=text/javascript> </SCRIPT>



这样网页在加载的时候会自动对页面中的 object 标签进行重写,实现自动激活。

上面说的方法是外部JS调用法,其实我们熟悉常用的Dreamweaver最新版8.02版也给出了这个问题的解决方法。大家把Dreamweaver升级到8.02版后,再插入Flash文件时,会加入一个脚本来解决这个问题。



一下是js文件

var ie = (document.defaultCharset && document.getElementById && !window.home);

var opera9 = false;

if (ie){



var ver=navigator.appVersion.split("MSIE")

ver=parseFloat(ver[1])

ie = (ver >=6)

}else if (navigator.userAgent.indexOf("Opera")!=-1) {



var versionindex=navigator.userAgent.indexOf("Opera")+6

if (parseInt(navigator.userAgent.charAt(versionindex))>=9)

opera9 = true;

}



var oswap = (ie || opera9)





if (oswap){

document.write ("<style id='hideObject'> object{display:none;} </style>");

}





objectSwap = function(){

if (!document.getElementsByTagName){

return;

}





var objects = document.getElementsByTagName('object');

for (var i=0; i<objects.length; i++){

var o = objects[i];

var h = o.outerHTML;



var params = "";

var hasFlash = true;

for (var j = 0; j<o.childNodes.length; j++) {

var p = o.childNodes[j];

if (p.tagName == "PARAM"){



if (p.name == "flashVersion"){

hasFlash = detectFlash(p.value);

if (!hasFlash){



o.id = (o.id == "") ? ("stripFlash"+i) : o.id;

stripQueue.push(o.id);

break;

}

}

params += p.outerHTML;

}

}

if (!hasFlash){

continue;

}



if (!oswap){

continue;

}



if (o.className.toLowerCase().indexOf ("noswap") != -1){

continue;

}



var tag = h.split(">")[0] + ">";



var newObject = tag + params + o.innerHTML + " </OBJECT>";



o.outerHTML = newObject;

}



if (stripQueue.length) {

stripFlash(stripQueue)

}



if (oswap){

document.getElementById("hideObject").disabled = true;

}

}



detectFlash = function(version){

if(navigator.plugins && navigator.plugins.length){



var plugin = navigator.plugins["Shockwave Flash"];

if (plugin == undefined){

return false;

}

var ver = navigator.plugins["Shockwave Flash"].description.split(" ")[2];

return (Number(ver) >= Number(version))

} else if (ie && typeof (ActiveXObject) == "function"){



try{

var flash = new ActiveXObject("ShockwaveFlash.ShockwaveFlash." + version);

return true;

}

catch(e){

return false;

}

}

return true;

}

stripFlash = function (stripQueue){

if (!document.createElement){

return;

}

for (var i=0; i<stripQueue.length; i++){

var o = document.getElementById(stripQueue[i]);

var newHTML = o.innerHTML;

newHTML = newHTML.replace(/<!--\s/g, "");

newHTML = newHTML.replace(/\s-->/g, "");

newHTML = newHTML.replace(/<embed/gi, "<span");

var d = document.createElement("div");

d.innerHTML = newHTML;

d.className = o.className;

d.id = o.id;

o.parentNode.replaceChild(d, o);}

}



var tempFunc = window.onload;

window.onload = function(){

if (typeof (tempFunc) == "function"){

try{

tempFunc();

} catch(e){}

}

objectSwap();

}





·上一篇:flash as语言5 >>    ·下一篇:as 火焰效果 >>
推荐文章
最新文章