Flash Particle Sparkler
Simple Particle Sparkler, the version above has the addition of a sparkler image to complete the bonfire night effect.
The Particle Sparkler can be seen on my sister site Flash Experiences it can be found here Particle Sparkler.
import com.Particle; Mouse.hide(); this.objParticle = new Particle(); addChild(this.objParticle);
PARTICLE CLASS
package com
{
// Import External Classes
import flash.display.Bitmap;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.TimerEvent;
import flash.filters.BlurFilter;
import flash.geom.Point;
import flash.utils.Timer;
/**
* Name : Particle
* Coded By : Matt Wakeling
* Date : 22nd November 2011
* Description : Particle Class for Particle Effect.
*
* @author Matt Wakeling
*/
public class Particle extends Sprite
{
// Initialise Class Properties
private var objParticleTimer:Timer;
private const MAX_PARTICLES:int = 150;
//Parictle Constuctor
public function Particle()
{
super();
InitialiseParticle();
}
// InitialiseMain Method
private function InitialiseParticle():void
{
if (stage)
this.InitialiseStage();
else
addEventListener(Event.ADDED_TO_STAGE, this.InitialiseStage);
}
// InitialiseStage Method
private function InitialiseStage(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, this.InitialiseStage);
this.objParticleTimer = new Timer(1000 / 30);
this.objParticleTimer.addEventListener(TimerEvent.TIMER, this.ParticleEvent, false, 0, true);
this.objParticleTimer.start();
}
// ParticleEvent Method
public function ParticleEvent(PEEvent:TimerEvent):void
{
if (this.numChildren < MAX_PARTICLES)
{
var objPixel:Pixel = new Pixel();
objPixel.addPixel(new Point(this.mouseX, this.mouseY), new Point(((Math.random() * 10) - (Math.random() * 10)), (Math.random() * -5)));
addChild(objPixel);
objPixel = undefined;
}
}
}
}
PIXELCLASS
package com
{
import flash.display.Graphics;
import flash.display.Sprite;
import flash.events.Event;
import flash.filters.BlurFilter;
import flash.filters.GlowFilter;
import flash.geom.Point;
/**
* Name : Pixel
* Coded By : Matt Wakeling
* Date : 23rd November 2011
* Description : Pixel Class for the Particle Class.
*
* @author Matt Wakeling
*/
public class Pixel extends Sprite
{
// Intialise Class Properties
private var pntPixelVector:Point = new Point(0,0);
private var pntTempVector:Point = new Point(0,0);
private const MINIMUM_SCALE_PERCENT:int = 10;
private const MAXIMUM_SCALE_PERCENT:int = 100;
private const PIXELSIZE:int = 3;
private const GRAVITY:Number = 1.5;
private const FRICTION:Number = 0.85;
// Pixel Constructor
public function Pixel()
{
// Constructor Code
super();
this.InitialisePixel();
}
// Initialise Method
private function InitialisePixel():void
{
// Initiailise Stage
if (stage)
this.InitialiseStage();
else
addEventListener(Event.ADDED_TO_STAGE, InitialiseStage);
}
// init Method
private function InitialiseStage(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, InitialiseStage);
addEventListener(Event.ENTER_FRAME, FrameEvent);
}
// addPixel Method
public function addPixel(pntPosition:Point, pntVector:Point):void
{
// Draw Pixel
this.graphics.clear();
this.graphics.beginFill(0xFFFFFF);
this.graphics.drawCircle(0, 0, this.PIXELSIZE);
this.x = pntPosition.x;
this.y = pntPosition.y;
this.pntPixelVector = pntVector;
this.pntTempVector = new Point(pntVector.x, pntVector.y);
addEventListener(Event.ENTER_FRAME, FrameEvent);
}
// FrameEvent Method
private function FrameEvent(FEEvent:Event):void
{
this.x += this.pntPixelVector.x;
this.y += this.pntPixelVector.y;
this.pntPixelVector.x *= this.FRICTION;
this.pntPixelVector.y += this.GRAVITY;
var numRandomScale:Number = ((Math.floor(Math.random() * (this.MAXIMUM_SCALE_PERCENT - this.MINIMUM_SCALE_PERCENT + 1)) + this.MINIMUM_SCALE_PERCENT)/100);
this.scaleX = this.scaleY = numRandomScale;
numRandomScale = undefined;
this.filters = [new GlowFilter(0xFFD700, 1, 5, 5, 2, 1), new BlurFilter((this.pntPixelVector.x * 0.5), (this.pntPixelVector.y * 0.5), 1)];
if (this.y > stage.stageHeight)
{
this.x = this.parent.mouseX; // MouseX point values are affected by Scale changes, so using parent values.
this.y = this.parent.mouseY; // MouseY point values are affected by Scale changes, so using parent values.
this.pntPixelVector.x = this.pntTempVector.x;
this.pntPixelVector.y = this.pntTempVector.y;
}
}
}
}
Matt Wakeling (http://programmingexperiences.blogspot.com/)

0 Comments Received
Leave A Reply