您的位置:首页 > 其它

Flash as3 addCallback 失效问题解决办法

2011-03-20 17:31 330 查看
google 了一遍,现在内容采集器真厉害, 99.5%的文章都一个样,

 

所有搜索下来给我的答案就是:看官方文档!

 

我随后就凌乱了.....

 

好吧,看文档就看文档,

 

这个addCallback 失效大多都会出现在 遨游和TT浏览器上, 原因就是:cache

 

好吧,找到问题了就解决, 按照其它人说的在 as3 上 加上setTimeout ?   答案是否定的!

按照官方的办法来解决, 可能只有50%的人能解决, 那另外50%怎么解决? 那就看下面的内容吧

 

js

 

var isRead=false;

function getIsReady(){
return isReady;
}

window.onload=function(){
isReady=true;
}


 

as3

function isReady(){
var isR:Boolean=Boolean(ExternalInterface.call("getIsReady"));
return isR;
}
function regist_fun() {
if(!ExternalInterface.available){
return false;
}
var isRv:Boolean=isReady();
if(isRv){
//addCallBack();
//.....注册函数
}else{
var readyTimer:Timer=new Timer(500);
readyTimer.addEventListener(TimerEvent.TIMER,function(e:TimerEvent){
var tmpReady:Boolean=isReady();
if(tmpReady){
Timer(e.target).stop();
//addCallBack();
//.....注册函数
}
});
readyTimer.start();
}

}


 

 

上面就是官方给出的解决方案....这里就完成了80%了

注意接下来才是关键

 

将 regist_fun() 放在 时间轴上的 第二帧以后

 

至于为什么, 知道flex应该懂了吧,渲染问题.... 这里我就不多说了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息