// -------------------------------------------------------------------------------------- // Preloader Class v2.0 // by Jonas Galvez (jonasgalvez@uol.com.br) // -------------------------------------------------------------------------------------- _global.Preloader = function() { var args = (arguments[0].length) ? arguments[0] : arguments; this.mcTotal = this.total = this.left = 0; this.loaded = this._percentage = 0; this.movieclips = new Array(); for(var i = 0; i < args.length; i++) { if(args[i] instanceof MovieClip) { this.mcTotal += args[i].getBytesTotal(); this.movieclips[this.movieclips.length] = args[i]; }; }; }; ASSetPropFlags(_global, "Preloader", 7); Preloader.prototype.getBytesTotal = function() { return this.total; }; Preloader.prototype.addProperty("bytesTotal", Preloader.prototype.getBytesTotal, null); ASSetPropFlags(Preloader.prototype, "getBytesTotal", 7); Preloader.prototype.getBytesLoaded = function() { return this.loaded; }; Preloader.prototype.addProperty("bytesLoaded", Preloader.prototype.getBytesLoaded, null); ASSetPropFlags(Preloader.prototype, "getBytesLoaded", 7); Preloader.prototype.getBytesLeft = function() { return this.left; }; Preloader.prototype.addProperty("bytesLeft", Preloader.prototype.getBytesLeft, null); ASSetPropFlags(Preloader.prototype, "addMovieClips", 7); Preloader.prototype.getPercentage = function() { return this._percentage; }; Preloader.prototype.addProperty("percentage", Preloader.prototype.getPercentage, null); ASSetPropFlags(Preloader.prototype, "percentage", 7); Preloader.prototype.startPreload = function() { if(this.movieclips.length) this._interval = setInterval(this, "_main", 100); }; ASSetPropFlags(Preloader.prototype, "startPreload", 7); Preloader.prototype.stopPreload = function() { clearInterval(this._interval); }; ASSetPropFlags(Preloader.prototype, "stopPreload", 7); Preloader.prototype.hasMovieClip = function(mc) { if(mc instanceof MovieClip) { for(var i = 0; i < this.movieclips.length; i++) { if(this.movieclips[i] == mc) return true; }; }; return false; }; ASSetPropFlags(Preloader.prototype, "hasMovieClip", 7); Preloader.prototype.addMovieClips = function() { var args = (arguments[0].length) ? arguments[0] : arguments; for(var i = 0; i < args.length; i++) { if(args[i] instanceof MovieClip) if(!this.hasMovieClip(args[i])) { this.mcTotal += args[i].getBytesTotal(); this.movieclips[this.movieclips.length] = args[i]; }; }; }; ASSetPropFlags(Preloader.prototype, "addMovieClips", 7); Preloader.prototype.removeMovieClips = function() { var args = (arguments[0].length) ? arguments[0] : arguments; for(var i = 0; i < args.length; i++) { if(!this.hasMovieClip(args[i])) { this.mcTotal -= args[i].getBytesTotal(); for(var j = 0; j < this.movieclips.length; j++) { if(this.movieclips[j] == args[i]) this.movieclips.splice(j, 1); }; }; }; }; ASSetPropFlags(Preloader.prototype, "removeMovieClips", 7); Preloader.prototype._main = function() { this.total = this.loaded = 0; for(var j = 0; j < this.movieclips.length; j++) { this.total += this.movieclips[j].getBytesTotal(); this.loaded += this.movieclips[j].getBytesLoaded(); }; if(this.total != this.mcTotal) { this.left = this.total - this.loaded; this._percentage = Math.round(this.loaded*100/this.total); this.onPreloadUpdate(); }; if(this._percentage == 100) { this.onPreloadComplete(); this.mcTotal = this.total = this.left = 0; this.stopPreload(); }; }; ASSetPropFlags(Preloader.prototype, "_main", 7); MovieClip.prototype.preloadMovie = function(url, variables) { if(variables.length) this.loadMovie(url, variables); else this.loadMovie(url); return new Preloader(this); }; ASSetPropFlags(MovieClip.prototype, "preloadMovie", 7); // -------------------------------------------------------------------------------------- // ENG DTP & Multimídia // http://www.eng.com.br/ // --------------------------------------------------------------------------------------