/**
* Copyright PixelDevil ( http://wonderfl.net/user/PixelDevil )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/64lk
*/
package {
import flash.display.Shape;
import flash.display.Sprite;
import flash.display.MovieClip
import flash.events.Event;
import flash.events.MouseEvent;
import flash.events.TimerEvent;
import flash.filters.DropShadowFilter;
import flash.utils.Timer;
import flash.ui.Mouse;
import flash.filters.BlurFilter;
import flash.filters.ColorMatrixFilter;
import flash.geom.Point;
import flash.display.Bitmap;
import flash.display.BitmapData;
/**
* ...
* @author PixelDevil
*/
[SWF(width="500", height="500", backgroundColor= 0x000000, frameRate="24")]
public class MouseEffect extends MovieClip {
var myTimer:Timer = new Timer(50, 0);
var circle:MovieClip = new MovieClip ();
var rayon:Number = 7;
//filters
private var bmd:BitmapData = new BitmapData(stage.stageWidth, stage.stageHeight, true, 0x00000);
private var bm:Bitmap = new Bitmap (bmd);
private var bf:BlurFilter = new BlurFilter (8, 8, 1);
private var cmf:ColorMatrixFilter = new ColorMatrixFilter ([1, 0, 0, 0, 0, // red
0, 1, 0, 0, 0, // green
0, 0, 1, 0, 0, // blue
0, 0, 0, 0.9, 0, ]); // alpha
private var d:DropShadowFilter = new DropShadowFilter(0.0, 0, 0x994675, 0.5, 30.0, 30.0, 1.0, 1, false, false, false)
// CONSTRUCTEUR
public function MouseEffect ():void {
init();
Mouse.hide();
addChild(bm);
}
// call the function
private function init():void{
initObjet();
initListener();
}
// function to call my listener
private function initListener():void {
addEventListener(Event.ENTER_FRAME, move);
addEventListener(MouseEvent.MOUSE_DOWN, functionClick);
myTimer.addEventListener(TimerEvent.TIMER, circleGrow);
}
// creat a round object
private function initObjet():void {
circle.graphics.beginFill(0x00000); // 0x00000
circle.graphics.lineStyle(1,0xffffff); // 0xffffff
circle.graphics.drawCircle(0, 0, 5);
addChild(circle);
circle.filters = [d];
}
// on click my timer start
private function functionClick(e:MouseEvent):void {
myTimer.start();
}
// function to scale my round object and decrease the transparency
private function circleGrow(e:TimerEvent):void {
circle.width +=rayon;
circle.height +=rayon;
circle.alpha -= 0.05;
// apply filters
bmd.draw(this);
bmd.applyFilter(bmd, bmd.rect, new Point (0, 0), bf);
bmd.applyFilter(bmd, bmd.rect, new Point (0, 0), cmf);
// if my round goes under 0 to the alpha, resize it
if (circle.alpha <= 0) {
circle.width =10;
circle.height =10;
circle.alpha = 1;
}
}
// my object follow the mouse
private function move(e:Event):void {
circle.x = mouseX;
circle.y = mouseY;
}
}
}