异步加载资源是一种非阻塞的加载方式,在资源加载过程中不会阻塞主线程或其他任务的执行。相反,它会在后台进行资源加载,并在加载完成后触发回调函数来处理加载结果。
在 Cocos Creator 中,异步加载资源可以通过回调函数或者 Promise 来实现。
以下是两种常见的异步加载资源的示例:
1.使用回调函数
cc.resources.load('textures/image', cc.SpriteFrame, (err, spriteFrame) => {
if (err) {
console.error('Failed to load resource:', err);
return;
}
// 资源加载成功,可以进行后续处理
// ...
});
2.使用 Promise
cc.resources.load('textures/image', cc.SpriteFrame)
.then((spriteFrame) => {
// 资源加载成功,可以进行后续处理
// ...
})
.catch((err) => {
console.error('Failed to load resource:', err);
});
在上述示例中,使用 cc.resources.load 方法返回一个 Promise 对象,可以通过 then 方法注册成功回调函数,通过 catch 方法注册失败回调函数。当资源加载成功时,会触发成功回调函数,并传递加载成功的资源对象;当资源加载失败时,会触发失败回调函数,并传递错误信息。
无论是使用回调函数还是 Promise,异步加载资源的关键在于不会阻塞主线程或其他任务的执行。这样可以确保游戏的流畅性,并允许在资源加载完成后进行后续处理,例如显示加载的图像、更新场景等操作。