mirror of
https://github.com/pyscript/pyscript.git
synced 2022-05-01 19:47:48 +03:00
63 lines
1.4 KiB
JavaScript
63 lines
1.4 KiB
JavaScript
//simple resource loader
|
|
(function() {
|
|
var resourceCache = {};
|
|
var loading = [];
|
|
var readyCallbacks = [];
|
|
|
|
// Load an image url or an array of image urls
|
|
function load(urlOrArr) {
|
|
if(urlOrArr instanceof Array) {
|
|
urlOrArr.forEach(function(url) {
|
|
_load(url);
|
|
});
|
|
}
|
|
else {
|
|
_load(urlOrArr);
|
|
}
|
|
}
|
|
|
|
function _load(url) {
|
|
if(resourceCache[url]) {
|
|
return resourceCache[url];
|
|
}
|
|
else {
|
|
var img = new Image();
|
|
img.onload = function() {
|
|
resourceCache[url] = img;
|
|
|
|
if(isReady()) {
|
|
readyCallbacks.forEach(function(func) { func(); });
|
|
}
|
|
};
|
|
resourceCache[url] = false;
|
|
img.src = url;
|
|
}
|
|
}
|
|
|
|
function get(url) {
|
|
return resourceCache[url];
|
|
}
|
|
|
|
function isReady() {
|
|
var ready = true;
|
|
for(var k in resourceCache) {
|
|
if(resourceCache.hasOwnProperty(k) &&
|
|
!resourceCache[k]) {
|
|
ready = false;
|
|
}
|
|
}
|
|
return ready;
|
|
}
|
|
|
|
function onReady(func) {
|
|
readyCallbacks.push(func);
|
|
}
|
|
|
|
window.resources = {
|
|
load: load,
|
|
get: get,
|
|
onReady: onReady,
|
|
isReady: isReady
|
|
};
|
|
})();
|