[LayaAirIDE 2.0]Laya.loader加载BUG
加载图片的时候,源码里这一步会的url为“”的时候,会执行this.onLoaded(null)这一步_
_proto.load=function(url,type,cache,group,ignoreCache,useWorkerLoader){
(cache===void 0)&& (cache=true);
(ignoreCache===void 0)&& (ignoreCache=false);
(useWorkerLoader===void 0)&& (useWorkerLoader=false);
if (!url){
this.onLoaded(null);
return;
}
而type 是 atlas
__proto.onLoaded=function(data){
//add by yeyq, 检查是否正在下载,避免网页reload
this.event("progress",0);
var type=this._type;
if (type=="plfb"){
this.parsePLFBData(data);
this.complete(data);
}else if (type=="plf"){
this.parsePLFData(data);
this.complete(data);
}else if (type==="image"){
var tex=new Texture(data);
tex.url=this._url;
this.complete(tex);
}else if (type==="sound" || type==="htmlimage" || type==="nativeimage"){
this.complete(data);
}else if (type==="atlas"){
if (Laya.stage["support_gzip"])
{
if (data != null && !data.url && !data._setContext)
{
var res = '';
try{
var data = pako.inflate(data);
var i = 0;
for (i = 0; i < data.length; i++) {
res = res + String.fromCharCode(data[i]);
}
data = JSON.parse(res);
}catch(error)
{
console.log("parse fail " + error);
}
}
}
if (!data.url && !data._setContext){
在onloaded中没有对data做任何的非空判断,在这一步data.url的时候,就会报错了。导致卡死。
_proto.load=function(url,type,cache,group,ignoreCache,useWorkerLoader){
(cache===void 0)&& (cache=true);
(ignoreCache===void 0)&& (ignoreCache=false);
(useWorkerLoader===void 0)&& (useWorkerLoader=false);
if (!url){
this.onLoaded(null);
return;
}
而type 是 atlas
__proto.onLoaded=function(data){
//add by yeyq, 检查是否正在下载,避免网页reload
this.event("progress",0);
var type=this._type;
if (type=="plfb"){
this.parsePLFBData(data);
this.complete(data);
}else if (type=="plf"){
this.parsePLFData(data);
this.complete(data);
}else if (type==="image"){
var tex=new Texture(data);
tex.url=this._url;
this.complete(tex);
}else if (type==="sound" || type==="htmlimage" || type==="nativeimage"){
this.complete(data);
}else if (type==="atlas"){
if (Laya.stage["support_gzip"])
{
if (data != null && !data.url && !data._setContext)
{
var res = '';
try{
var data = pako.inflate(data);
var i = 0;
for (i = 0; i < data.length; i++) {
res = res + String.fromCharCode(data[i]);
}
data = JSON.parse(res);
}catch(error)
{
console.log("parse fail " + error);
}
}
}
if (!data.url && !data._setContext){
在onloaded中没有对data做任何的非空判断,在这一步data.url的时候,就会报错了。导致卡死。
没有找到相关结果
已邀请:
要回复问题请先登录
1 个回复
1588124599用户
赞同来自: