当咱们进入游戏时,是不可能看到全部的图像的,不少图像都是随着游戏功能的打开而出现,html
好比只有我打开了“宝石”菜单才会显示宝石的图像,若是是须要显示的时候才加载,api
会对用户体验大打折扣,假如用户的手机信号不太好,那么点击菜单将一片空白,数组
这不是咱们但愿的效果,只有一种状况是临时加载,就是不可预见的图像,好比排行榜,性能优化
我并不知道我刷新一下排行榜会有哪些人会排到前10名,那么只有经过临时加载这些人的头像才能正确显示,布局
这在后续的教程中会讲解,其他游戏自己的图像都是可预见的,咱们经过运用游戏载入读条的类,一次性将素材所有加载,并显示Loading效果。性能
定义全局图像数组,存入要加载的图像:优化
var loadData = [ {name: "bbtn", path: "images/bbtn.png"}, {name: "bg", path: "images/bg.jpg"}, {name: "gongjili", path: "images/gongjili.png"}, {name: "gwhps", path: "images/gwhps.png"}, {name: "gwhpsbg", path: "images/gwhpsbg.png"}, {name: "headborder", path: "images/headborder.png"}, {name: "jinbi", path: "images/jinbi.png"}, {name: "rbtn", path: "images/rbtn.png"}, {name: "userinfo", path: "images/userinfo.png"}, {name: "zuanshi", path: "images/zuanshi.png"}, ];
官方一共提供7种加载效果,LoadingSample1至LoadingSample7,也能够本身写一个读条类,官方API文档:spa
http://www.lufylegend.com/api/zh_CN/out/classes/LLoadManage.html3d
将教程(三)中main方法的加载图像方法删除 用读条类加载,实例化一个读条类,code
function main() { //游戏全屏显示,自适应屏幕 LGlobal.stageScale = LStageScaleMode.SHOW_ALL; LSystem.screen(LStage.FULL_SCREEN); //居中 LGlobal.align = LStageAlign.TOP_MIDDLE; //加载Loading类读取图片,这里注意:loadingLayer是全局变量 并无用var关键字声明 loadingLayer = new LoadingSample5(); addChild(loadingLayer); LLoadManage.load(loadData, function (progress) { loadingLayer.setProgress(progress); }, gameInit); }
其中gameInit 表明加载完毕后要执行的方法,图象加载完毕后,咱们定义1个gameInit 方法来显示背景图片,
function gameInit(result) { //将图像集结果赋值给数组并移除读条界面 loadData = result; removeChild(loadingLayer); loadingLayer = null; //新建一个背景层,添加到Canvas画布 BGDiv = new LSprite(); addChild(BGDiv); //将图像信息从数组中取出赋值给图像数据变量 var bitmapData = new LBitmapData(loadData["bg"]); //将图像信息赋值给一个图像 var bgmapimg = new LBitmap(bitmapData); //添加图像到背景层 BGDiv.addChild(bgmapimg); }
这样咱们就完成了一次性加载全部图像,之后在使用时就能够直接经过数组取图像: loadData ["图像名称"]
运行一下代码,是否是感受有点游戏的味道了,若是电脑配置比较好读取较快看不到效果的话,
能够设置一个错误的图片路径,永远读取不到的话就会停留在读条界面,就能够看到效果了。
本篇源代码+素材 下载地址:http://pan.baidu.com/s/1cEbn90
下一篇咱们将讲解 游戏界面布局与性能优化