domingo, 26 de febrero de 2012

Uso de filtros con AS3


Los filtros son efectos de mapa de bits que pueden ser aplicado a cualquier objeto que se visualiza en un entorno flash, mediante el panel IDE o mediante código; se puede aplicar diferentes filtros a un objeto como ser sombras, brillo, bisel, gradientes, etc. Primero se debe de crear un filtro, para esto primero utilizamos estas sentencias de código: Llamada a paquetes que necesita:
import flash.filters.BlurFilter;
Luego dentro de nuestro método creamos una variable llamada desenfoque:
var desenfoque:BlurFilter = new BlurFilter(5, 5, 3);
Con esos parámetros indicamos el desenfoque que tendrán tanto en el eje x=5 e y=5, además de una calidad de definición de desenfoque de 3, cualquier objeto en particular tiene su propiedad filtros, esta es una matriz que tiene todos los filtros que pueden ser aplicados a un objeto y un objeto puede tener varios objetos aplicados; esta sería una forma de aplicar filtros a un objetos.
package
{
 import flash.display.Sprite;
 import flash.filters.BlurFilter;
 
 public class Filtros extends Sprite{
  public function Filtros(){
   init();
  }
  private function init():void{
   var sprite:Sprite = new Sprite();
   sprite.graphics.lineStyle(2);
   sprite.graphics.beginFill(0xccccff);
   sprite.graphics.drawCircle(150,150,50);
   sprite.graphics.endFill();
   addChild(sprite);
   //esta es la manera larga
   //var desenfoque:BlurFilter = new BlurFilter(5,5,3);
   //var filters:Array = new Array();
   //filters.push(desenfoque);
   //sprite.filters = filters;
   //---------------------------------------------------------
   //esta es otra forma
   //var desenfoque:BlurFilter = new BlurFilter(5,5,3);
   //var filters:Array = [desenfoque];
   //sprite.filters = filters;
   //---------------------------------------------------------
   //y la forma mas resumida
   sprite.filters = [new BlurFilter(5,5,3)];
   
  }
 }
}
La matriz de filtros siempre se crea como una matriz vacía y solo se tiene que obtener una referencia a esa matriz y asignarle una nueva propiedad, así ese filtro se añadirá al objeto. Existen otras formas de hacer lo mismo… como el método de concatenación:
Sprite.filters = sprite.filters.concat(new BlurFilter(5,5,3));
Con la cual se obtiene una matriz con los filtros asignados. Este seria el resultado obtenido: