在 CocosCreator 中,`cc.loader.loadRes()` 方法是官方推荐用于动态加载资源的方法。本文将详细介绍该方法的使用方式及注意事项。
参数说明:
- 资源路径: 在指定资源路径时,不需要包含 `resources` 目录,且不应包含文件扩展名。例如,如果需要加载位于 `resources/images` 目录下的 `man.png` 图片,应使用 `images/man` 作为路径。
- 资源类型: 第二个参数用于指定资源的类型。对于不同类型的资源,需要使用不同的类型标识。例如,图片资源应使用 `cc.SpriteFrame`,音效资源则应使用 `cc.AudioClip`。
- 回调函数: 第三个参数是一个回调函数,当资源加载完成后,该函数会被调用。你可以在回调函数中处理业务逻辑,如设置精灵帧等。
示例代码:
function SetStarTex(_sprite, _colorIndex) { let tex = this.StarTexs[_colorIndex]; if (tex === null) { let texName = ''; switch (_colorIndex) { case 0: texName = 'tex/star/red'; break; case 1: texName = 'tex/star/yellow'; break; case 2: texName = 'tex/star/blue'; break; case 3: texName = 'tex/star/green'; break; case 4: texName = 'tex/star/purple'; break; } cc.loader.loadRes(texName, cc.SpriteFrame, (error, object) => { if (error) { console.error('Error loading resource:', texName); } _sprite.spriteFrame = object; this.StarTexs[_colorIndex] = object; }); } else { _sprite.spriteFrame = tex; } }
以上代码展示了如何根据颜色索引动态加载不同颜色的星星图片,并将其设置为精灵的纹理。通过这种方式,可以有效地管理游戏中的动态资源加载,提高游戏性能和用户体验。