creator如何实现单个资源的进度提示

creator2.2.1。项目里面现在想实现一项功能,就是从目标地址下载音乐到本地然后播放,然后想做一个下载进度的进度条。但是我看了creator并没有这样的的接口,loadRes的进度是针对一个资源列表的,并没有单独加载一个资源的进度。请问这个有实现的方案吗

用cc.loader的话一个只有0-1 我之前也是这个需求 后来的解决方案是自己做了个假的 比如开始load就播一个0-0.9的动画 然后什么时候收到完成回调直接从当前到1 不过这样需要你的每个文件大小都差不多 差的太多就会有点违和 因为前面都是一样的 只是最后那0.1的时间不一样

这有点假,而且音乐文件大小差别还是挺大的,不适合。谢谢哈

音乐文件名中加大小?根据大小做假动画?

这,感觉有点假 :sweat_smile:。有方案可以做比较真实的吗

今天有空试了下 是支持进度的 这是2.4.4的代码

const url = 'http://10.10.38.128:3000/zipRes/ket_audio/123.mp3';
cc.assetManager.loadRemote(url, {
    onFileProgress: (current, total) => {
        console.log('下载进度', current, total)
    }
}, () => {
    console.log('下载完成')
})

引擎源码在 download-file.js 里面

if (onProgress) {
    xhr.onprogress = function (e) {
        if (e.lengthComputable) {
            onProgress(e.loaded, e.total);
        }
    };
}

测试了 网页预览 模拟器预览 ios真机都是可以的
理论上2.2.1里面的loder也是可以的 可以找下源码看看

好的,我去看看。在2.2.1里面还没有assetManger这个类。