Cocos Creator 加载远程资源和设备资源
在目前的 Cocos Creator 中,我们支持加载远程贴图资源,这对于加载用户头像等需要向服务器请求的贴图很友好,需要注意的是,这需要开发者直接调用 cc.assetManager.loadRemote
方法。同时,如果开发者用其他方式下载了资源到本地设备存储中,也需要用同样的 API 来加载,上文中的 cc.resources.load
等 API 只适用于应用包内的资源和热更新的本地资源。下面是这个 API 的用法:
// 远程 url 带图片后缀名 var remoteUrl = "http://unknown.org/someres.png"; cc.assetManager.loadRemote(remoteUrl, function (err, texture) { // Use texture to create sprite frame }); // 远程 url 不带图片后缀名,此时必须指定远程图片文件的类型 remoteUrl = "http://unknown.org/emoji?id=124982374"; cc.assetManager.loadRemote(remoteUrl, {ext: '.png'}, function () { // Use texture to create sprite frame }); // 用绝对路径加载设备存储内的资源,比如相册 var absolutePath = "/dara/data/some/path/to/image.png" cc.assetManager.loadRemote(absolutePath, function () { // Use texture to create sprite frame }); // 远程音频 remoteUrl = "http://unknown.org/sound.mp3"; cc.assetManager.loadRemote(remoteUrl, function (err, audioClip) { // play audio clip }); // 远程文本 remoteUrl = "http://unknown.org/skill.txt"; cc.assetManager.loadRemote(remoteUrl, function (err, textAsset) { // use string to do something });
目前的此类手动资源加载还有一些限制,对开发者影响比较大的是:
- 这种加载方式只支持图片、声音、文本等原生资源类型,不支持 SpriteFrame、SpriteAtlas、Tilemap 等资源的直接加载和解析。(如需远程加载所有资源,可使用 Asset Bundle)
- Web 端的远程加载受到浏览器的 CORS 跨域策略限制,如果对方服务器禁止跨域访问,那么会加载失败,而且由于 WebGL 安全策略的限制,即便对方服务器允许 http 请求成功之后也无法渲染。
目前尚未确认的问题是:
1、能否加载远程js资源
2、跨域的问题如何更好的解决
分类:
Cocos Creator
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具