Advertisement
Delta

Untitled

Sep 8th, 2012
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function imagePreloader(list, onload, each, onerror)
  2. {
  3.     this.list = list || null;
  4.     this.onload = onload || null;
  5.     this.each = each || null;
  6.     this.onerror = onerror || null;
  7.     this.ready =
  8.     this.ignoreErrors =
  9.     this.aborted = false;
  10.     this.loaded = 0;
  11.     this.quantity = null;
  12. };
  13.  
  14. imagePreloader.prototype.load = function()
  15. {
  16.     var self = this;
  17.     this.quantity = 0;
  18.     this.ready = false;
  19.     //for(var i in this.list) this.quantity++;
  20.    
  21.     for(var i in this.list)
  22.     {
  23.         if(typeof this.list[i] != "string") continue;
  24.         this.quantity++;
  25.        
  26.         var uri = this.list[i];
  27.         this.list[i] = new Image();
  28.         this.list[i].nome = i;
  29.         this.list[i].addEventListener("load", function()
  30.         {
  31.             self.loaded++;
  32.             if(self.aborted) return;
  33.             var nome = this.nome;
  34.             delete this.nome;
  35.            
  36.             if(self.loaded == self.quantity)
  37.             {
  38.                 self.ready = true;
  39.                 typeof self.each == "function" && self.each(this, nome);
  40.                 typeof self.onload == "function" && self.onload();
  41.             }
  42.             else typeof self.each == "function" && self.each(this, nome);
  43.         }, false);
  44.         this.list[i].addEventListener("errorr", function()
  45.         {
  46.             if(self.ignoreErrors) this.dispatchEvent(new Event("load"));
  47.             else
  48.             {
  49.                 typeof self.onerror == "function" && self.onerror(this);
  50.                 self.aborted = true;
  51.             }
  52.         }, false);
  53.         this.list[i].src = uri;
  54.     }
  55.    
  56.     return this;
  57. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement