支持二进制的资源类型

官方文档中没有提及到二进制资源的支持,即使扩展名取为bin了,最后得到的还是Text。但实际上还是有这种需求的。的确,loader是可以定制的,所以我用了下面的办法:
比如我们需要扩展名是bin的是二进制格式:

cc.loader.addDownloadHandlers({ bin: cc.loader.downloader["extMap"].binary }); cc.loader.addLoadHandlers({ bin: function (item, callback) { item._owner.rawBuffer = item.content; return item.content; } });

这样就可以通过rawBuffer获得二进制数据。

但在微信小游戏中又多了一层wxDownloader,这个就没有途径定制了。但实际只需要改动一处,在function readText 里,将encoding: ‘utf8’ 改成 encoding: item.type==‘bin’?null:‘utf8’, 就可以了。

不知道以后官方会不会增加二进制资源的支持,或者已经有?

如果不能,那只有两条路,一个是像上面那样改,一个只能将二进制编码base64了。

期待官方关注。。

从 2.1.0,或者 2.0.7 开始,将支持 .bin 二进制文件了。资源将导入为 cc.BufferAsset,目前载入后,可通过 bufferAsset._buffer 获取里面的数据。

测试了下,可以用了,顶一下!

关注一波。

mark,很有用

二进制mark

你好!请问2.0.8是否可用,经过测试貌似不识别cc.BufferAsset,谢谢!