Flash在遨游下被缓存的问题

本文介绍了解决IE浏览器因缓存导致的Flash加载失败问题的方法,通过设置页面不缓存、请求URL加入随机串及修改Flash内部代码等手段确保Flash与JS交互正常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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问题了.

 

 

感谢姚晓谊提供方法!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值