cocos如何异步加载
时间: 2023-10-02 07:09:27 浏览: 162
在Cocos中,可以使用以下方法来异步加载资源:
1. 使用cc.loader.loadRes()方法,该方法可以异步加载资源并在加载完成后执行回调函数。例如:
```
cc.loader.loadRes('prefabs/myPrefab', function (err, prefab) {
if (err) {
cc.log(err);
return;
}
cc.log('My prefab loaded successfully');
});
```
2. 使用cc.loader.load()方法,该方法可以异步加载网络上的资源并在加载完成后执行回调函数。例如:
```
cc.loader.load('http://www.myserver.com/image.png', function (err, texture) {
if (err) {
cc.log(err);
return;
}
cc.log('My texture loaded successfully');
});
```
3. 使用cc.loader.loadResDir()方法,该方法可以异步加载一个文件夹中的所有资源并在加载完成后执行回调函数。例如:
```
cc.loader.loadResDir('res/prefabs', function (err, prefabs) {
if (err) {
cc.log(err);
return;
}
cc.log('My prefabs loaded successfully');
});
```
4. 使用cc.loader.loadResArray()方法,该方法可以异步加载一个资源数组并在加载完成后执行回调函数。例如:
```
var myRes = ['prefabs/myPrefab', 'images/myImage.png'];
cc.loader.loadResArray(myRes, function (err, resources) {
if (err) {
cc.log(err);
return;
}
cc.log('My resources loaded successfully');
});
```
这些方法都支持使用Promise方式进行异步加载。例如:
```
cc.loader.loadRes('prefabs/myPrefab')
.then(function (prefab) {
cc.log('My prefab loaded successfully');
})
.catch(function (err) {
cc.log(err);
});
```
阅读全文