splat-ecs
Version:
A 2D HTML5 Canvas game engine
40 lines (37 loc) • 880 B
JavaScript
var once = require("../once");
module.exports = function(url, responseType, callback) {
callback = once(callback);
var asset = {
loaded: 0,
total: 1,
data: undefined
};
var request = new XMLHttpRequest();
request.open("GET", url, true);
request.responseType = responseType;
request.addEventListener("progress", function(e) {
if (e.lengthComputable) {
asset.loaded = e.loaded;
asset.total = e.total;
}
});
request.addEventListener("load", function() {
asset.data = request.response;
asset.loaded = asset.total;
callback(undefined, asset);
});
request.addEventListener("abort", function(e) {
asset.error = e;
callback(e);
});
request.addEventListener("error", function(e) {
asset.error = e;
callback(e);
});
try {
request.send();
} catch (e) {
callback(e);
}
return asset;
};