2.5.1 单张图片资源的加载和使用
加载单张图片,可以使用Laya.Sprite对象的loadImage()方法实现。
在Main.js的init2()方法的最后,添加下列代码。
运行效果如图2.14所示。第102~103行代码实现了加载图片并显示图片的功能。bow.png的宽是107像素,高是320像素。为了让弓绕原点旋转的动画效果更好,设置sp_bow_img.pos(30, -160),即弓向x轴正方向移动30像素,而非紧贴着sp_bow的坐标原点。
图2.14 加载单张图片并显示
loadImage()是Laya.Sprite对象加载图片的方法,其处理结果是返回Sprite对象本身,因此,需要先创建Laya.Sprite对象。loadImage方法有两个常用参数:第一个参数是字符串格式的图片加载路径,是必填项;第二个参数是图片加载完毕的处理方法,可以实现一些加载后的功能。
loadImage()是一个异步加载的过程,不是立即完成的,且由于网络延时、图片文件较大等因素,加载过程可能有延时,因此可以使用第五个参数来监听加载完成触发的消息。值得注意的是:Laya.Handler.create(this, function () { console.log('图片加载完毕!') })是Laya定义的事件监听句柄的固定写法。在对象池内创建一个句柄,默认会执行一次并立即回收。第一个参数指定该监听事件的发起者,第二个参数是一个完整的方法体。至此,我们实现了加载完毕在调试控制台打印消息“图片加载完毕!”的功能。
我们已经了解了加载单张图片的基本方法。显然,对于需要不断重复创建的箭来说,每次创建都要进行一次异步图片加载,是很不合理的。幸运的是,我们可以使用加载图集的方式来解决这个问题。
注意:loadImage的API在2.0版本中进行了修改,不再提供加载后移动图像的功能。