首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Flash >

Flash在遨游上被缓存的有关问题

2012-10-31 
Flash在遨游下被缓存的问题Flash需要和JS交互,但是在ie外壳浏览器下,有时候缓存会导致页面刷新后flash无法

Flash在遨游下被缓存的问题

Flash需要和JS交互,但是在ie外壳浏览器下,有时候缓存会导致页面刷新后flash无法工作.

?

会报出SecurityError.

?

这是因为Flash并没有完全准备好,就尝试和JS交互导致的问题.

?

解决的问题方式有几种:

?

1.在页面上设置不缓存,网上有很多文章介绍.

?

2.在flash的url后加入随机串,每次都重新请求flash不让浏览器缓存.

?

3. 1和2对于小流量的网站是可以接受的,对于大流量的网站每次都重新请求不缓存是很悲剧的.所以需要从flash的代码中来解决这个问题..

?

??1).在全局初始化之前,使用Timer判断flash的宽度是否大于零

??2).宽度大于零之后,调用页面的js函数,保证flash与js通信畅通后开始初始化.

?

?

?

??var initTimer = new Timer(300, 0); /*时间可随意*/
initTimer.addEventListener(TimerEvent.Timer, _initTimer); initTimer.start(); function _initTimer(evt:TimerEvent):void {    if(stage.stageWidth > 0) {        initTimer.stop();    } }function checkJS():void {    var jsReady:Boolean = false;    try{       jsReady = ExternalInterface.call('jsReady);       if(jsReady){          init();       }else{          checkJS();       }    }catch(e:*){       checkJS();    }}

?JS部分只需要给一个纯return true的函数即可

?

function?jsReady(){return true;}

?

这样就可以解决缓存带来的flash问题了.

?

?

感谢姚晓谊提供方法!

热点排行