版权声明:转载时请以超链接形式标明文章原始出处 http://blog.lonelystar.org/post/2.html
LoadImage是单张图片载入函数
如果要再某张图片成功载入后执行某函数就用一个LoadImage即可
JavaScript语言:
LoadImage:$User.Browser.IE? //IE
function(url,callback,Ar){ //地址,回调函数,给回调函数的参数
var img=new Image();
//当准备状态发生改变时判断是否complete,是则执行回调函数
img.onreadystatechange=function(){img.readyState=='complete'&&callback(Ar)}
//出错时状态改变事件置空,执行回调函数
img.onerror=function(){img.onreadystatechange=null;img.title=url;callback(Ar);};
img.src=url; //赋值要放在事件定义后
}:
function(url,callback,Ar){ //非IE
var img=new Image();
//是否有缓存,是则直接执行回调函数
img.src=url;
img.complete?callback(Ar):(
//无缓存,执行onload后回调或者出错后回调
img.onload=function(){img.complete&&callback(Ar)},
img.onerror=function(){img.title=url;callback(Ar);}
)
}
function(url,callback,Ar){ //地址,回调函数,给回调函数的参数
var img=new Image();
//当准备状态发生改变时判断是否complete,是则执行回调函数
img.onreadystatechange=function(){img.readyState=='complete'&&callback(Ar)}
//出错时状态改变事件置空,执行回调函数
img.onerror=function(){img.onreadystatechange=null;img.title=url;callback(Ar);};
img.src=url; //赋值要放在事件定义后
}:
function(url,callback,Ar){ //非IE
var img=new Image();
//是否有缓存,是则直接执行回调函数
img.src=url;
img.complete?callback(Ar):(
//无缓存,执行onload后回调或者出错后回调
img.onload=function(){img.complete&&callback(Ar)},
img.onerror=function(){img.title=url;callback(Ar);}
)
}
在JSPVZ里的多张图片是每个关卡单独载入一次
在首页出现的时候
游戏的公用图片已经载入完毕
之后每关只载入本关所需要用到的图片
所以要使用到多图载入进度条
原理是要先知道到底要载入哪些图片
然后把所有需要载入的图片url放入一个数组
载入图片时循环读取数组url
每读取一个就执行一个LoadImage
而回调函数都是执行CheckImg来检查是否载入了所有图片
载入所有图片后就开始执行下一个任务
JavaScript语言:
CheckImg:function(){
/*使用一个变量存储载入成功的图片数
每次执行CheckImg该变量+1
if(载入数==图片总数){
执行下一个函数
}*/
}
/*使用一个变量存储载入成功的图片数
每次执行CheckImg该变量+1
if(载入数==图片总数){
执行下一个函数
}*/
}
欢迎您发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
本文现有1 条评论
1 恩恩,又上了一课