(function(window){	function ParticleExplosion(color)	{		this.color		= color;		// We need each ParticleExplosion instance to keep track of its own particles and Signals (= NOT set on prototype object!)		this.particles	= [];		this.completed	= new signals.Signal();		this.initialize();	}	ParticleExplosion.prototype = new Container();		// Consts		ParticleExplosion.MAX_AMOUNT	= 250;		ParticleExplosion.MAX_SIZE		= 3;		ParticleExplosion.SPEED 		= 8;		// Constructor:		ParticleExplosion.prototype.Container_initialize = ParticleExplosion.prototype.initialize;	// Unique to avoid overiding base class		/**		* INIT METHODS		*/		ParticleExplosion.prototype.initialize = function()		{			this.Container_initialize();			this.drawParticles();		}		ParticleExplosion.prototype.drawParticles = function()		{			var total	= MathUtils.randRange(ParticleExplosion.MAX_AMOUNT/2, ParticleExplosion.MAX_AMOUNT);			for(var i=0; i<total; ++i)			{				var size	= MathUtils.randRange(1, ParticleExplosion.MAX_SIZE);				var particle	= new Shape();				particle.alpha	= MathUtils.randRange(0, 1);				particle.pathX	= MathUtils.randRange(-ParticleExplosion.SPEED, ParticleExplosion.SPEED);				particle.pathY	= MathUtils.randRange(-ParticleExplosion.SPEED, ParticleExplosion.SPEED);				particle.graphics.beginFill(this.color);				particle.graphics.drawCircle(0, 0, size);				particle.graphics.endFill();				this.addChild(particle);				this.particles.push(particle); // Unique, not set on prototype			}		}		/**		* RENDERING METHODS		*/		ParticleExplosion.prototype.tick = function()		{			if(this.particles.length <= 0)			{				this.completed.dispatch(this);			}			else			{				var _total	= this.particles.length;				for(var i=0; i<_total; ++i)				{					var particle	= this.particles[i];					if(particle)					{						particle.x		+= particle.pathX;						particle.y		+= particle.pathY;						particle.alpha	-= 0.05;						if(particle.alpha <= 0)						{							this.particles.splice(this.particles.indexOf(particle), 1);							particle.parent.removeChild(particle);						}					}				}			}		}	window.ParticleExplosion = ParticleExplosion;}(window));
