| 赞 | 63 |
| VIP | |
| 好人卡 | |
| 积分 | 76 |
| 经验 | |
| 最后登录 | 2024-6-8 |
| 在线时间 | 2566 小时 |
- 梦石
- 2
- 星屑
- 5550
- 在线时间
- 2566 小时
- 注册时间
- 2012-2-9
- 回帖
- 947

|
发表于 2016-11-16 17:16:09
|
显示全部楼层
本帖最后由 garfeng 于 2016-11-16 17:23 编辑
在进入地图时,把你将要用到的图片都以0的透明度显示出来。
如果图片不在pictures目录下修改你的index.html,添加
[pre lang="html"]<div style="display: none;">
<img src="1.jpg">
<img src="2.jpg">
<img src="3.jpg">
</div>
[/pre]
游戏运行过程中不卡,但进入页面时往往会卡半天。
另一种比较装B的办法
[pre lang="javascript"]var paths = ["1.jpg","2.jpg","3.jpg"]; //需要加载的所有图片
var objs = [];
function preLoad(callback = null) {
var tmp = new Image();
var src = paths.pop();
if (src == undefined) {
//所有图片加载完毕,开始执行callback
if (callback == null) {
return;
}
callback();
return;
}
tmp.src = src;
objs.push(tmp);
//加载完后加载下一张
tmp.onload = function(){preLoad(callback);};
tmp.onerror = function(){throw new Error("fail to load" + src)};
}
function finishLoad(){
alert("加载完毕!");
for (var i = objs.length - 1; i >= 0; i--) {
document.getElementsByTagName('body')[0].appendChild(objs);
}
}
preLoad(finishLoad); //填入你要在图片加载完后运行的函数,注意是非阻塞。
//这样可以偷偷的加载完。preLoad(xxx)后面的命令不会被卡住。
[/pre]
|
|