Clase de ActionScript 3 para añadir sombras a MovieClips
Esta es una sencilla clase de ActionScript 3 que he escrito para añadir y modificar fácilmente sombras a MovieClips.
Lo que hago simplemente es implementar la clase DropShadowFilter para añadirle un filtro de sombra al clip.
La clase se compone básicamente de dos funciones iniSombra() y update(). En la primera añado los valores por defecto que tendrá el filtro de sombra y en la segunda es la funciónque añadirá el filtro al MovieClip con dichos parámetros. Estas dos funciones son llamadas desde el constructor de la clase.
-
private function iniSombra():void
-
{
-
_color = 0x000000;
-
_angulo = 45;
-
_alfa = 0.7;
-
_blurX = 5;
-
_blurY = 5;
-
_distancia = 5;
-
_strength = 0.65;
-
_inner = false;
-
_knockout = false;
-
_calidad = BitmapFilterQuality.HIGH;
-
}
-
private function update():void
-
{
-
_filtros = new Array();
-
_sombra = new DropShadowFilter(_distancia,_angulo,_color,_alfa,_blurX,_blurY,_strength,_calidad,_inner,_knockout);
-
_filtros.push(_sombra);
-
_clip.filters = _filtros;
-
}
Además la clase incorpora una serie de setters para modificar los parámetros del filtro. Estos setters realizan una llamada a la función update() para actualizar la sombra al cambiar cualquier parámetro.
-
public function set color(color:Number):void
-
{
-
_color = color;
-
update();
-
}
Esta serÃa la clase completa:
-
package
-
{
-
import flash.display.Sprite;
-
import flash.filters.BitmapFilter;
-
import flash.filters.BitmapFilterQuality;
-
import flash.filters.DropShadowFilter;
-
//------------------------------------------
-
public class Sombra extends Sprite
-
{
-
private var _ruta:Sprite;
-
private var _clip:Object;
-
private var _filtros:Array;
-
private var _sombra:BitmapFilter;
-
private var _color:Number;
-
private var _angulo:Number;
-
private var _alfa:Number;
-
private var _blurX:Number;
-
private var _blurY:Number;
-
private var _distancia:Number;
-
private var _strength:Number;
-
private var _inner:Boolean;
-
private var _knockout:Boolean;
-
private var _calidad:Number;
-
//------------------------------------------
-
public function Sombra(clip:Object)
-
{
-
_ruta = clip.parent;
-
_clip = clip;
-
iniSombra();
-
update();
-
}
-
//------------------------------------------
-
private function iniSombra():void
-
{
-
_color = 0x000000;
-
_angulo = 45;
-
_alfa = 0.7;
-
_blurX = 5;
-
_blurY = 5;
-
_distancia = 5;
-
_strength = 0.65;
-
_inner = false;
-
_knockout = false;
-
_calidad = BitmapFilterQuality.HIGH;
-
}
-
//------------------------------------------
-
private function update():void
-
{
-
_filtros = new Array();
-
_sombra = new DropShadowFilter(_distancia,_angulo,_color,_alfa,_blurX,_blurY,_strength,_calidad,_inner,_knockout);
-
_filtros.push(_sombra);
-
_clip.filters = _filtros;
-
}
-
//------------------------------------------
-
public function set color(color:Number):void
-
{
-
_color = color;
-
update();
-
}
-
//------------------------------------------
-
public function set angulo(angulo:Number):void
-
{
-
_angulo = angulo;
-
update();
-
}
-
//------------------------------------------
-
public function set alfa(alfa:Number):void
-
{
-
_alfa = alfa;
-
update();
-
}
-
//------------------------------------------
-
public function set blurX(blurX:Number):void
-
{
-
_blurX = blurX;
-
update();
-
}
-
//------------------------------------------
-
public function set blurY(blurY:Number):void
-
{
-
_blurY = blurY;
-
update();
-
}
-
//------------------------------------------
-
public function set distancia(distancia:Number):void
-
{
-
_distancia = distancia;
-
update();
-
}
-
//------------------------------------------
-
public function set strength(strength:Number):void
-
{
-
_strength = strength;
-
update();
-
}
-
//------------------------------------------
-
public function set inner(inner:Boolean):void
-
{
-
_inner = inner;
-
update();
-
}
-
//------------------------------------------
-
public function set knockout(knockout:Boolean):void
-
{
-
_knockout = knockout;
-
update();
-
}
-
//------------------------------------------
-
public function set calidad(calidad:Number):void
-
{
-
_calidad = calidad;
-
update();
-
}
-
//------------------------------------------
-
}
-
}
Un ejemplo de uso podrÃa ser este (en nuestro .fla):
-
import Sombra;
-
var sombra1:Sombra = new Sombra(logo1);
-
var sombra2:Sombra = new Sombra(logo2);
-
var sombra3:Sombra = new Sombra(logo3);
-
sombra2.blurX = 15;
-
sombra2.blurY = 15;
-
sombra2.angulo = 90
-
sombra2.distancia = 20;
-
sombra3.alfa = 1
-
sombra3.color = 0x0066CC
-
sombra3.blurX = 15;
-
sombra3.blurY = 15;
-
sombra3.distancia = 0;
Post relacinonados:
2 Comments »
RSS feed for comments on this post. TrackBack URI










Muy bueno y útil.
un simple
new Sombra(miobjetovisible)
y listo.
Gracias
muy bueno, gracias por compartar tus conocimientos...