Toggle navigation
Sign Up
Log In
Explore
Works
Folders
Tools
Collections
Artists
Groups
Groups
Topics
Tasks
Tasks
Jobs
Teams
Jobs
Recommendation
More Effects...
ActionScript
package { import flash.display.*; import flash.events.*; import flash.filters.*; import flash.geom.*; import flash.utils.*; [SWF(width=465, height=465, frameRate=45, backgroundColor=0x0)] public class Shaaa extends Sprite { /** const */ public static const SW:Number = 465; public static const SH:Number = 465; public static const SC:Number = SW*0.5; public static const SM:Number = SH*0.5; public static const MAX:int = 150; public static const DELAY:int = 100; /** display object */ private var _container:Sprite; private var _bg:Shape; /** var */ private var lights:Vector.
; private var timer:Timer; private var r:Number; private var ct:ColorTransform; public function Shaaa() { super(); Light.init();// lights = new Vector.
(); r = Math.random()*360; ct = new ColorTransform(); var m:Matrix = new Matrix(); var a:int = Math.min( SW, SH); m.createGradientBox( a, a, 0, (SW-a)*0.5, (SH-a)*0.5); _bg = new Shape(); _bg.filters = [new GlowFilter( 0x0, 0.3, 128, 128, 1, 2, true)]; _bg.graphics.beginGradientFill( GradientType.RADIAL, [0xFFFFFF, 0x808080], [1,1], [0x0,0xFF], m); _bg.graphics.drawRect( 0, 0, SW, SH); _bg.graphics.endFill(); _container = new Sprite(); _container.x = SC; _container.y = SM; addChild( _bg ); addChild( _container ); timer = new Timer(DELAY); timer.addEventListener( TimerEvent.TIMER, onTimer);// timer.start(); onTimer();// this.addEventListener( Event.ENTER_FRAME, update);// } /** UPDATE */ private function update( e:Event ):void { var l:Light; if( lights.length < MAX ) { l = new Light(); lights.push( l ); _container.addChild( l ); } for each( l in lights) l.update(); } /** TIMER */ private function onTimer( e:TimerEvent=null ):void { r += 1; ct.redMultiplier = Math.sin(r*Math.PI/180); ct.greenMultiplier = Math.sin((r+120)*Math.PI/180); ct.blueMultiplier = Math.sin((r+240)*Math.PI/180); this.transform.colorTransform = ct; } } } import flash.display.*; import flash.geom.*; import flash.filters.*; class Light extends Sprite { /** STATIC */ public static const AR:int = 2; public static const BR:int = 10; public static const RADIUS:int = 225; public static const COL:int = 0xFFFFFF; public static const BLUR:int = 8; public static var source:BitmapData; /** Display Object */ private var _bmp:Bitmap; /** var */ private var rad:Number; private var a:Number; private var v:Number; public function Light() { super(); this.x = Math.random()*800; this.y = Math.random()*600; this._bmp = new Bitmap(source); addChild( _bmp ); reset();// } /** UPDATE */ public function update():void { v += a; this.scaleX = this.scaleY += v*0.02; this.x += Math.cos(rad)*v; this.y += Math.sin(rad)*v; if( this.x > Shaaa.SC || this.x < -Shaaa.SC || this.y > Shaaa.SM || this.y < -Shaaa.SM) reset(); } /** REST */ private function reset():void { var r:Number = Math.random()*360; this.alpha = Math.random()*0.5 + 0.5; this.scaleX = this.scaleY = 0.05; this.rotation = r this.rad = r/180*Math.PI; this.a = Math.random()*5; this.x = Math.cos(rad)*RADIUS/a; this.y = Math.sin(rad)*RADIUS/a; _bmp.scaleX = _bmp.scaleY = a*0.1; _bmp.y = -(BR+BLUR*0.5)*_bmp.scaleX; v = 0; } /** STATIC INIT */ public static function init():void { var m:Matrix = new Matrix(); m.createGradientBox( RADIUS*0.5, BR*2, 0, 0, 0); var s:Sprite = new Sprite(); s.filters = [new BlurFilter(BLUR,BLUR,3)]; s.graphics.beginGradientFill( GradientType.LINEAR, [COL, COL, COL], [0, 1, 0], [0x0,0x80,0xFF], m); s.graphics.moveTo( 0, -AR); s.graphics.lineTo( RADIUS*0.5, -BR); s.graphics.lineTo( RADIUS*0.5, BR); s.graphics.lineTo( 0, AR); s.graphics.lineTo( 0, -AR); s.graphics.endFill(); m = new Matrix(); m.tx = BLUR*0.5; m.ty = BR+BLUR*0.5; source = new BitmapData( s.width+BLUR, s.height+BLUR, true, 0x0); source.draw( s, m); } }
Join Effecthub.com
Working with Global Gaming Artists and Developers!
Login
Sign Up
Or Login with Your Email Address:
Email
Password
Remember
Or Sign Up with Your Email Address:
Your Email
This field must contain a valid email
Set Password
Password should be at least 1 character
Stay informed via email