DropShadowFilter en AS3. Agregar sombra a un objeto.
Monday, 22. February 2010
A través de ActionScript 3, podemos agregar un filtro de sombra a cualquier objeto que tengamos en el escenario. Basta con definir el filtro en una variable, y asignarselo a la propiedad .fliters de un objeto específico. Para esto utilizamos la clase DropShadowFilter. Dicha clase nos permite automáticamente crear una sombra que seguirá el contorno de los objetos y nos permitirá controlar muchos parámetros de la misma, tales como el color, la intensidad, la transparencia, la distancia, etc.
El primer paso que vamos a llevar a cabo para insertar la sombra es obtenerla a partir de la creación de un Filtro (usando la misma lógica que para definir una variable). Creamos el filtro de la siguiente manera:
var sombra:DropShadowFilter=new DropShadowFilter();
Una vez hecho esto le asignamos dicho filtro al objeto. Esto lo hacemos utilizando su nombre de instancia:
nombreDelObjeto.filters=[sombra];
Con estas dos sencillas líneas ya habremos agregado una sombra predeterminada al objeto que deseemos. Lo unico que nos resta es personalizar, si queremos, dicha sombra. Para esto, debemos alterar los parámetros que tiene como predeterminados la clase DropShadowFilter().
Parámetros
DropShadowFilter(
distancia:Number = 4.0,
angulo:Number = 45,
color:uint = 0,
Transparencia:Number = 1.0,
desenfocarX:Number = 4.0,
desenfocarY:Number = 4.0,
intensidad:Number = 1.0,
calidad:int = 1,
interior:Boolean = false,
extraccion:Boolean = false,
ocultarObjeto:Boolean = false)
Estos son los parámetros predeterminados de la clase. Ninguno es obligatorio. Por esta razón, escribir new DropShadowFilter() tiene el mismo resultado que escribir new DropShadowFilter(4.0,45,0x000000,1.0,4.0,4.0,1.0,1,false,false,false)
Sin embargo, ahora que vemos cuales son los parámetros podemos modificarlos a nuestro gusto. Podemos por ejemplo utilizar “6″ en vez de “4.0″ en el primer parámetro para alejar un poco la sombra del objeto, o utilizar “0×666666″ para aclarar un poco el color de la sombra de negro a gris. Vamos a explicar para qué sirve cada parámetro:
| Parámetro | Función |
|---|---|
| Distancia | La separación entre el objeto y su sombra. Mientras el valor se acerque a 0, la sombra se acercará al objeto. Un valor positivo la aleja en el sentido del ángulo establecido, y un valor negativo la aleja en el sentido contrario. Recibe cualquier número entero o decimal. |
| Ángulo | Corresponde al ángulo de donde recibe la luz el objeto, y por lo tanto el mismo ángulo en el que la sombra será reflejada. Recibe un valor ente 0 y 359. |
| Color | Color que tendrá la sombra. Se escribe en el formato 0xFFFFFF siendo en dígitos hexadecimales RRGGBB |
| Transparencia | Nivel de transparencia de la sombra. La sombra puede o no permitir que se vean los objetos que quedan ubicados detrás de ella. Recibe un valor entre 0 y 1.0 |
| DesenfocarX | Distorsión de la sombra horizontalmente, en el eje X. Al aumentar la sombra se difumina horizontalmente. Recibe un número entre 0 y 100. |
| DesenfocarY | Distorsión de la sombra verticalmente, en el eje Y. Al aumentar la sombra se difumina verticalmente. Recibe un número entre 0 y 100. |
| Intensidad | Fortaleza del contraste generado por la sombra. |
| Calidad | Hace referencia a la calidad visual del filtro de sombra, ya que lo aplica varias veces. Calidad baja, media o alta se identifican con 1, 2 o 3 y corresponden al numero de veces que se recrea la sombra. |
| Interior | Al ser false crea una sombra exterior, y es el valor predeterminado. Al pasar a true hace que la sombra sea “Interior”. |
| Extracción | Crea la sombra y hace que el relleno del objeto sea transparente. |
| Ocultar Objeto | Hace invisible el objeto, pero permite ver su sombra. Se obtienen resultados similares coon la “Extracción” |
Espero que el artículo sirva para aclarar el tema. De tener alguna sugerencia, comentario, duda o aporte, pueden escribir en los comentarios del blog.
Saludos.
Samuel Jiménez. EsK.






Edordz Says:
Gracias por el comment, disculpa si hasta ahora lo respondo pero no he tenido tiempo…
Estaré al pendiente de tu blog, tienes cosas buenas
Saludos
Anibal Says:
gracias por tus lecciones son buenas voy a ponerlas en practica…