mouse follow effect

AS3 Dynamic Mouse Trailer with Gravity

Friday, March 26th, 2010 | AS3 Effects | No Comments

This is a basic AS3 mouse trailer sparkle effect with gravity.

?View Code ACTIONSCRIPT
/**
 * Dynamic Mouse Trailer with Gravity
 * ---------------------
 * VERSION: 1.0
 * DATE: 3/13/2010
 * AS3
 * UPDATES AND DOCUMENTATION AT: http://www.FreeActionScript.com
 **/
package com.freeactionscript 
{
	import flash.display.MovieClip;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;
 
	public class MouseTrailer extends Sprite
	{
		// Vars
		private var particleArray:Array;
 
		// Settings
		private var particleMaxSpeed:Number = 1;
		private var particleFadeSpeed:Number = .025;
		private var particleTotal:Number = 3;
		private var particleRange:Number = 25;
		private var particleCurrentAmount:Number = 0;
 
		public function MouseTrailer() 
		{
 
		}
 
		public function init():void
		{
			particleArray = [];
 
			addEventListener(Event.ENTER_FRAME, onEnterFrameLoop);
			stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
		}
 
		private function onEnterFrameLoop(event:Event):void
		{
			updateParticle();
		}
 
		private function mouseMoveHandler(event:Event):void
		{
			createParticle(stage.mouseX, stage.mouseY);
		}
 
		/**
		 * createParticle(target X position, target Y position)
		 */
		function createParticle(targetX:Number, targetY:Number):void
		{
			//run for loop based on particleTotal
			for (var i:Number = 0; i < particleTotal; i++) 
			{
				var particle_mc:MovieClip = new Particle();
 
				//set position & rotation, alpha
				particle_mc.x = targetX
				particle_mc.y = targetY
				particle_mc.rotation = Math.random() * 360;
				particle_mc.alpha = Math.random() * .5 + .5;
 
				//set particle boundry            
				particle_mc.boundyLeft = targetX - particleRange;
				particle_mc.boundyTop = targetY - particleRange;
				particle_mc.boundyRight = targetX + particleRange;
				particle_mc.boundyBottom = targetY + particleRange;
 
				//set speed/direction of fragment
				particle_mc.speedX = Math.random() * particleMaxSpeed - Math.random() * particleMaxSpeed;
				particle_mc.speedY = Math.random() * particleMaxSpeed + Math.random() * particleMaxSpeed;
				particle_mc.speedX *= particleMaxSpeed
				particle_mc.speedY *= particleMaxSpeed
 
				//set fade out speed
				particle_mc.fadeSpeed = Math.random()*particleFadeSpeed;
 
				//just a visual particle counter
				particleCurrentAmount++;
 
				// add to array
				particleArray.push(particle_mc);
 
				// add to display list
				addChild(particle_mc);
			}
		}
 
		private function updateParticle():void
		{
			for (var i = 0; i < particleArray.length; i++)
			{
				var tempParticle:MovieClip = particleArray[i];
 
				//update alpha, x, y
				tempParticle.alpha -= tempParticle.fadeSpeed;
				tempParticle.x += tempParticle.speedX;
				tempParticle.y += tempParticle.speedY;
 
				// if fragment is invisible remove it				
				if (tempParticle.alpha <= 0)
				{
					destroyParticle(tempParticle);
				}
				// if fragment is out of bounds, increase fade out speed
				else if (tempParticle.x < tempParticle.boundyLeft || 
						tempParticle.x > tempParticle.boundyRight || 
						tempParticle.y < tempParticle.boundyTop || 
						tempParticle.y > tempParticle.boundyBottom)
				{
					tempParticle.fadeSpeed += .05;
				}
			}
		}
 
		private function destroyParticle(particle:MovieClip):void
		{
			for (var i = 0; i < particleArray.length; i++)
			{
				var tempParticle:MovieClip = particleArray[i];
				if (tempParticle == particle)
				{
					particleCurrentAmount--;
					particleArray.splice(i,1);
					removeChild(tempParticle);
				}
			}
		}
 
	}
 
}
Download Fla Sample

Download Fla Sample

Tags: , , , , , ,

AS3 Dynamic Mouse Trailer

Friday, March 26th, 2010 | AS3 Effects | No Comments

This is a basic AS3 mouse trailer sparkle effect.

?View Code ACTIONSCRIPT
/**
 * Dynamic Mouse Trailer
 * ---------------------
 * VERSION: 1.0
 * DATE: 3/13/2010
 * AS3
 * UPDATES AND DOCUMENTATION AT: http://www.FreeActionScript.com
 **/
package com.freeactionscript
{
	import flash.display.MovieClip;
	import flash.display.Sprite;
	import flash.events.Event;
 
	public class MouseTrailer extends Sprite
	{
		// Vars
		private var particleArray:Array;
 
		// Settings
		private var particleMaxSpeed:Number = 1;
		private var particleFadeSpeed:Number = .05;
		private var particleTotal:Number = 5;
		private var particleRange:Number = 25;
		private var particleCurrentAmount:Number = 0;
 
		public function MouseTrailer()
		{
 
		}
 
		public function init():void
		{
			particleArray = [];
 
			addEventListener(Event.ENTER_FRAME, onEnterFrameLoop);
		}
 
		private function onEnterFrameLoop(event:Event):void
		{
			createParticle(stage.mouseX, stage.mouseY);
			updateParticle();
		}
 
		/**
		 * createParticle(target X position, target Y position)
		 */
		function createParticle(targetX:Number, targetY:Number):void
		{
			//run for loop based on particleTotal
			for (var i:Number = 0; i &lt; particleTotal; i++)
			{
				var particle_mc:MovieClip = new Particle();
 
				//set position &amp; rotation, alpha
				particle_mc.x = targetX
				particle_mc.y = targetY
				particle_mc.rotation = Math.random() * 360;
				particle_mc.alpha = Math.random() * .5 + .5;
 
				//set particle boundry
				particle_mc.boundyLeft = targetX - particleRange;
				particle_mc.boundyTop = targetY - particleRange;
				particle_mc.boundyRight = targetX + particleRange;
				particle_mc.boundyBottom = targetY + particleRange;
 
				//set speed/direction of fragment
				particle_mc.speedX = Math.random() * particleMaxSpeed - Math.random() * particleMaxSpeed;
				particle_mc.speedY = Math.random() * particleMaxSpeed - Math.random() * particleMaxSpeed;
				particle_mc.speedX *= particleMaxSpeed
				particle_mc.speedY *= particleMaxSpeed
 
				//set fade out speed
				particle_mc.fadeSpeed = Math.random()*particleFadeSpeed;
 
				//just a visual particle counter
				particleCurrentAmount++;
 
				// add to array
				particleArray.push(particle_mc);
 
				// add to display list
				addChild(particle_mc);
			}
		}
 
		private function updateParticle():void
		{
			for (var i = 0; i &lt; particleArray.length; i++)
			{
				var tempParticle:MovieClip = particleArray[i];
 
				//update alpha, x, y
				tempParticle.alpha -= tempParticle.fadeSpeed;
				tempParticle.x += tempParticle.speedX;
				tempParticle.y += tempParticle.speedY;
 
				// if fragment is invisible remove it
				if (tempParticle.alpha &lt;= 0)
				{
					destroyParticle(tempParticle);
				}
				// if fragment is out of bounds, increase fade out speed
				else if (tempParticle.x &lt; tempParticle.boundyLeft ||
						tempParticle.x &gt; tempParticle.boundyRight ||
						tempParticle.y &lt; tempParticle.boundyTop ||
						tempParticle.y &gt; tempParticle.boundyBottom)
				{
					tempParticle.fadeSpeed += .05;
				}
			}
		}
 
		private function destroyParticle(particle:MovieClip):void
		{
			for (var i = 0; i &lt; particleArray.length; i++)
			{
				var tempParticle:MovieClip = particleArray[i];
				if (tempParticle == particle)
				{
					particleCurrentAmount--;
					particleArray.splice(i,1);
					removeChild(tempParticle);
				}
			}
		}
 
	}
 
}
Download Fla Sample

Download Fla Sample

Tags: , , , ,

Dynamic Bitmap Mouse Trailer

Friday, January 30th, 2009 | Effects Dynamic, Game Examples AS2 | 1 Comment

Here is a new Dynamic Bitmap Mouse Trailer.

This is an update to the previous trailer effect that used movieclips instead of BitmapData. The bitmap version works much faster and smoother. Check out this post for BitmapData usage examples.

Preview

Download Fla Sample

Download Fla Sample

Tags: , , , , , , ,