Crea un documento nuevo y pega el siguiente código en el primer frame, donde mejor se ve es un fondo negro o en fondos muy oscuros:
Código ActionScript :
import flash.geom.*;
//---Función de hacer un círculo
function drawCircle(movie:MovieClip, posX:Number, posY:Number, radio:Number):Void {
var c1:Number = (Math.SQRT2-1)*radio;
var c2:Number = Math.SQRT2/2*radio;
movie.moveTo(posX+radio,posY);
movie.curveTo(posX+radio,posY+c1,posX+c2,posY+c2);
movie.curveTo(posX+c1,posY+radio,posX,posY+radio);
movie.curveTo(posX-c1,posY+radio,posX-c2,posY+c2);
movie.curveTo(posX-radio,posY+c1,posX-radio,posY);
movie.curveTo(posX-radio,posY-c1,posX-c2,posY-c2);
movie.curveTo(posX-c1,posY-radio,posX,posY-radio);
movie.curveTo(posX+c1,posY-radio,posX+c2,posY-c2);
movie.curveTo(posX+radio,posY-c1,posX+radio,posY);
}
//---Crear los circulos del flare
var halo:MovieClip;
var colors:Array = [0xE4C07E, 0xE4C07E];
var fillType:String = "radial";
var alphas:Array = [0, 80];
var ratios:Array = [0, 0xFF];
var spreadMethod:String = "pad";
var interpolationMethod:String = "RGB";
var focalPointRatio:Number = 0;
var matrix:Matrix;
var radio:Number;
var names:Array = new Array(5, 6, 4, 1, 3);
for (var i:Number = 0; i<names.length; i++) {
halo = this.createEmptyMovieClip("halo" + names[i], this.getNextHighestDepth());
radio = 20*(i+1);
matrix = new Matrix();
matrix.createGradientBox(radio * 4, radio * 4, 0, - radio * 2, - radio * 2);
halo.beginGradientFill(fillType, colors, alphas, ratios, matrix, spreadMethod, interpolationMethod, focalPointRatio);
drawCircle(halo, 0, 0, radio);
halo.endFill();
halo._alpha = 30;
}
halo = this.createEmptyMovieClip("halo2", this.getNextHighestDepth());
halo.beginFill(0x1DC0E2, 20);
drawCircle(halo, 0, 0, 15);
halo.endFill();
//---Rayos
var rayos:MovieClip = this.createEmptyMovieClip("rays", this.getNextHighestDepth());
var ray:MovieClip = rayos.createEmptyMovieClip("ray0", rayos.getNextHighestDepth());
colors = [0xFFFFFF, 0xFFFFFF];
alphas = [5, 0];
fillType = "linear";
spreadMethod = "reflect";
matrix = new Matrix();
matrix.createGradientBox(200, 200, 90, -100, 0);
ray.beginGradientFill(fillType, colors, alphas, ratios, matrix, spreadMethod, interpolationMethod, focalPointRatio);
ray.moveTo(0,-200);
ray.lineTo(3, -200);
ray.lineTo(3, 200);
ray.lineTo(0, 200);
ray.lineTo(0, -200);
ray.endFill();
for(var i:Number = 1; i < 4; i++){
ray.duplicateMovieClip("ray" + i, i, {_rotation:i * 45});
}
//---Crear el brillo
var brillo:MovieClip = this.createEmptyMovieClip("shine", this.getNextHighestDepth());
colors = [0xFFFFFF, 0xFECE41];
fillType = "radial";
spreadMethod = "pad";
alphas = [40, 0];
matrix = new Matrix();
matrix.createGradientBox(200, 200, 0, -100, -100);
brillo.beginGradientFill(fillType, colors, alphas, ratios, matrix, spreadMethod, interpolationMethod, focalPointRatio);
drawCircle(brillo, 0, 0, 200);
brillo.endFill();
colors = [0xFFFFFF, 0xFFFFFF];
alphas = [60, 0];
matrix = new Matrix();
matrix.createGradientBox(50, 50, 0, -25, -25);
brillo.beginGradientFill(fillType, colors, alphas, ratios, matrix, spreadMethod, interpolationMethod, focalPointRatio);
drawCircle(brillo, 0, 0, 50);
brillo.endFill();
//---Acciones de los halos y el brillo
this.onEnterFrame = function():Void{
var posX:Number = this._xmouse;
var posY:Number = this._ymouse;
var halo:MovieClip;
for (var i:Number = 1; i <= names.length + 1; i++) {
halo = this["halo" + i]._x = (Stage.width / 2 - posX) * (i - 2) / (names.length + 1) * 4 + posX;
halo = this["halo" + i]._y = (Stage.height / 2 - posY) * (i - 2) / (names.length + 1) * 3 + posY;
}
brillo._x = posX;
brillo._y = posY;
rayos._x = posX;
rayos._y = posY;
rayos._rotation += 10;
}