cc.url.raw获取资源路径错误

我的工程结构:

如上图,我要加载的就是resources/flag

我的代码:

加载后抛出
error:cc.SpriteAtlas in “resources/res/import/8d/8d8feb64-3085-4d1f-b61b-7d08c5cbf78d” does not exist.
浏览器Source查看,在res/import下面根本没有“8d”这个文件夹
如果改为:let altPath = cc.url.raw(‘flag’);
则会直接报错说这个资源不在resources文件夹下
版本2.0.10,windows10,chrome

求助,谢谢。

因为是测试运行,所以 if(cc.loader.md5Pipe)里面md5Pipe.transformURL并没有执行的。

另外,文件扩展名加上也没有用。

loadRes里的路径不需要转换,直接填写你编辑器里的路径。当然,是以resources为根路径的相对路径。

load才需要转换

先谢。
是的,我不转换可以加载到,但是如果我不转路径,那我发布版本之后能对?
我试试发布个版本出来跑一波。

多谢。
试了一下确实是可以
但是我之前一直都是勾选了MD5,要转路径才行的……
最近的版本更新不需要在loadRes的时候转路径了么 2333333333

求官方确认一下,
以后是不是我发布的时候勾选了md5,
在loadRes的时候,也不需要转换路径了,直接相对于resources文件夹的路径就可以了?
@Knox

如果用 loadRes 的话就不需要,好像一直都是不需要的

多谢回复。谢谢了。

以微信小游戏为例,不适用微信原生的代码的话,基本上是用不上cc.url.raw的。

cc.url.raw 是 1.x 的遗留 API,已经被废弃了。这个 API 只适用于 RawAsset(所以名字里有个 raw)
你这里要加载的是 SpriteAtlas,SpriteAtlas 并不是 RawAsset,Texture 才是。
所以就算你要用,你也应该用
cc.url.raw('resources/flag.png')

1赞

谢谢。