Comunidad de diseño web y desarrollo en internet online

efecto de brillo sol atardecer

Citar            
MensajeEscrito el 20 Ago 2008 10:02 pm
hola, quiero hacer un efecto como el que se crea en las cámaras, con polígonos que se alinean cuando se va apuntando al sol... mi animacion empieza apuntando al cielo y va bajando hasta llegar al sol en el atardecer... en su defecto, me gustaria encontrar un efecto de brillo que pudiera quedar bien...


gracias

Por yandrak

26 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 20 Ago 2008 11:41 pm
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;

}

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 21 Ago 2008 12:47 am
Se ve bien tu rayo de sol elchininet :D

Por Keith_NT

451 de clabLevel

3 tutoriales

 

México, Estado de México

msie
Citar            
MensajeEscrito el 21 Ago 2008 12:55 pm
Debería perfeccionar la cantidad de esferas y otros círculos de colores que se crean al mirar con una cámara al sol, pero si esto se hace rápidamente no tiene problemas y queda bastante bien, no es un efecto para dejar fijo, porque en la vida real es algo instantáneo.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 21 Ago 2008 03:31 pm
yo no veo nada.............

aviso de que no tengo ni idea de AS... si lo pego directamente en el primer frame no me da errores pero no se ve nada... y si lo intento pegar a un simbolo me da error

Por yandrak

26 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 21 Ago 2008 06:28 pm
Crea un documento nuevo, asegúrate de que estés trabajando con AS2, en el primer frame de tu documento pegas el código tan cual está posteado das CTRL + ENTER y mueve el mouse por la pantalla, si pones el fondo negro te saldrá mejor, pero de todas maneras algo tienes que ver.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.