远程资源加载问题 2.4

2.4之前用cc.loader.load("/xxx/xxx.mp3"),外加打包配置远程服务器地址,即可实现下载,并以后打开从本地读取资源,不重复下载。
2.4之后,cc.assetManager.loadRemote必须使用绝对地址,而且每次打开都会远程请求下载。
请问之前的功能如何实现?必须把音效文件还设置成一个bundle来加载?反而不够易用呢。。。

抱歉,实际上以前这种用法正常,其实属于意外情况呢,我们都不知道有这种情况。我们的文档中加载远程资源都是强调需要指定全路径的,

另外,远程资源默认是不缓存的,这点和以前也是一样的呢。

不过现在 assetManager 提供了可选参数可以用来控制是否缓存,你可以用

cc.assetManager.loadRemote('http://xxx', { cacheEnabled: true }, onComplete: () => {})

这样就能缓存了

我在mac模拟器上调用cc.assetManager.loadRemote加载远程图片,发现图片是会缓存到gamecaches文件夹,但是每次启动,都会重新去远程下载。文档中说cacheEnabled只适合小游戏平台,不适合原生平台。那我想知道已经缓存到gamecaches文件夹下的资源,如何能获取到?

我看了这个文件夹下有一个cacheList.json文件,里面是保存了url地址和本地存储地址,但是有什么对象能取到吗?

我在mac模拟器上调用cc.assetManager.loadRemote加载远程图片,发现图片是会缓存到gamecaches文件夹,但是每次启动,都会重新去远程下载。文档中说cacheEnabled只适合小游戏平台,不适合原生平台。那我想知道已经缓存到gamecaches文件夹下的资源,如何能获取到?

我看了这个文件夹下有一个cacheList.json文件,里面是保存了url地址和本地存储地址,但是有什么对象能取到吗?或者说需要开发人员自己去加载cacheList.json?

如上图中提到的第一点和第二点,下载过的资源会直接使用吗?但是我实际测试发现每次都会去下载?
@jare

原生是都缓存的,你可以用 cc.assetManager.cacheManager.getCache 获取缓存的url

cc.assetManager.loadRemote设计上就是每次都是从远程服务器上下载吗?但是文档上说的下载后会缓存,缓存后再次调用cc.assetManager.loadRemote相同的地址,还是会从服务器上下载然后覆盖本地,这里是这样设计的吗?还是BUG?我看文档···这里应该是BUG吧?

我在mac模拟器上和windows模拟器上,发现gamecaches文件夹会在每次启动模拟器的时候会被删除```

缓存是一直都存在么?还是游戏退出了或者游戏删除了就缓存没有了?