如题,cc.loader.addDownloadHandlers设置自定义load,但是在微信开发者工具里没有回调执行。
应该是会执行的,你可以根据微信小游戏适配层中的 wx-downloader.js 写法和 game.js
var pipeBeforeDownloader = cc.loader.md5Pipe || cc.loader.assetLoader;
cc.loader.insertPipeAfter(pipeBeforeDownloader, wxDownloader);
var arrayBufferHandler = function (item, callback) {
cc.log("-------arrayBufferHandler----------");
var url = item.url;
let xhr = cc.loader.getXMLHttpRequest();
xhr.open("GET", url, true);
xhr.responseType = "arraybuffer";
xhr.onload = function (oEvent) {
var arrayBuffer = xhr.response;
if (arrayBuffer) {
var result = new Uint8Array(arrayBuffer);
callback(null, result);
}
else {
callback("empty pb");
}
}
xhr.onerror = function(){
callback("get pb error");
}
xhr.ontimeout = function(){
callback("get pb timeout");
};
xhr.send(null);
};
cc.loader.addDownloadHandlers({
'pb': arrayBufferHandler
});
cc.loader.load(cc.url.raw( 'resources/rawdata/ConfigSpec_conf.pb' ), function(err,res){
if (err) {
cc.log(err);
}else{
configLoader.instance.ConfigSpec_conf = rawdata.ConfigSpec_conf.decode(res);
cc.log(configLoader.instance.ConfigSpec_conf);
}
});
在微信工具里没有打印出arrayBufferHandler回调日志。
你在什么时机注册这个的?
onLoad的时候
onLoad: function () {
configLoader.instance = this;
cc.loader.addDownloadHandlers({
'pb': arrayBufferHandler
});
configLoader.instance.ConfigSpec_conf = {};
cc.loader.load(cc.url.raw( 'resources/rawdata/ConfigSpec_conf.pb' ), function(err,res){
if (err) {
cc.log(err);
}else{
configLoader.instance.ConfigSpec_conf = rawdata.ConfigSpec_conf.decode(res);
cc.log(configLoader.instance.ConfigSpec_conf);
}
});
}
这个文件每次打包都会覆盖的对吗?
会 asd
