function load(asset, onload, onerror) {
	// make sure all parsers have been initialized
	if (parserInitialized === false) {
		initParsers();
	}

	// transform the url if necessary
	if (typeof baseURL[asset.type] !== "undefined") {
		asset.src = baseURL[asset.type] + asset.src;
	}

	const parser = parsers.get(asset.type);

	if (typeof parser === "undefined") {
		throw new Error("load : unknown or invalid resource type : " + asset.type);
	}

	// parser returns the amount of asset to be loaded (usually 1 unless an asset is splitted into several ones)
	return parser.call(this, asset, onload, onerror, {
		nocache: nocache,
		crossOrigin: crossOrigin,
		withCredentials: withCredentials,
	});
}
Load a single asset (to be used if you need to load additional asset(s) during the game)
@memberof loader
@param {Asset} asset
@param {Function} [onload] - function to be called when the asset is loaded
@param {Function} [onerror] - function to be called in case of error
@returns {number} the amount of corresponding resource to be preloaded
@example
// load an image asset
me.loader.load({name: "avatar",  type:"image",  src: "data/avatar.png"}, () => this.onload(), () => this.onerror());
// load a base64 image asset
 me.loader.load({name: "avatar", type:"image", src: "data:image/png;base64,iVBORw0KAAAQAAAAEACA..."};
 // load a base64 video asset
 me.loader.load({
    name: "avatar",
    type:"video",
    src: "data:video/mp4;base64,AAAAIGZ0eXBpc29tAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZ.."
 };
// start loading music
me.loader.load({
    name   : "bgmusic",
    type   : "audio",
    src    : "data/audio/"
}, function () {
    me.audio.play("bgmusic");
});