异步加载资源是一种非阻塞的加载方式,在资源加载过程中不会阻塞主线程或其他任务的执行。相反,它会在后台进行资源加载,并在加载完成后触发回调函数来处理加载结果。
在 Cocos Creator 中,异步加载资源可以通过回调函数或者 Promise 来实现。
以下是两种常见的异步加载资源的示例:
1.使用回调函数
cc.resources.load('textures/image', cc.SpriteFrame, (err, spriteFrame) => { if (err) { console.error('Failed to load resource:', err); return; } // 资源加载成功,可以进行后续处理 // ... });
在上述示例中,通过调用 `cc.resources.load` 方法异步加载名为 "textures/image" 的资源,并在加载完成后触发回调函数。回调函数接收两个参数:`err` 表示加载过程中是否发生错误,`spriteFrame` 是加载成功后的资源对象。可以在回调函数中处理加载成功或失败的情况。
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,异步加载资源的关键在于不会阻塞主线程或其他任务的执行。这样可以确保游戏的流畅性,并允许在资源加载完成后进行后续处理,例如显示加载的图像、更新场景等操作。