Ayuda ejercicios unidad 20: Los Filtros

Ejercicio 1: Selector de Filtros

  1. Abre el archivo filtros.fla que encontrarás en la carpeta ejercicios/filtros del curso.
  2. Haz clic en el primer fotograma de la capa acciones, abre el Panel Acciones desde VentanaAcciones o pulsando la tecla F9. Aquí introduciremos el código necesario para darle funcionalidad a la película.
  3. Ahora crearemos unas cuantas variables para saber en cada momento si un filtro se encuentra activo o no. Escribe lo siguiente a continuación:
  4. var filtroSombra:Boolean = false;
    
    var filtroDesenfocar:Boolean = false;
    
    var filtroIluminado:Boolean = false;
    
    var filtroBisel:Boolean = false;
    
    var filtroIluminadoDeg:Boolean = false;
    
    var filtroBiselDeg:Boolean = false;
    
    var filtroAjustarColor:Boolean = false;
    
    
  5. A continuación, definimos cada uno de los filtros, ya que sus propiedades no cambian:
    var sombra:DropShadowFilter=new DropShadowFilter(20,70,0x000000,0.5,5,5,10,3);
    
    var desenfocar:BlurFilter=new BlurFilter(5,5,3);
    
    var iluminado:GlowFilter=new GlowFilter(0xFFFF00,0.7,20,20,50,3);
    
    var bisel:BevelFilter=new BevelFilter(1,45,0xFFFFFF,0.5,0x000000,0.5,5,5,10,3,"inner");
    
    var iluminadoDeg:GradientGlowFilter=new GradientGlowFilter(0,45,[0xFFFFFF,0xFF0000],[0,1],[0,255],100,100,2,3,"outer");
    
    var biselDeg:GradientBevelFilter=new GradientBevelFilter(3,45,[0x0000FF,0xFF0000,0xFFFFFF],[1,0,1],[0,128,255],20,20,3.4,3,"inner");
    
    var ajustarColor:ColorMatrixFilter=new ColorMatrixFilter([0.250807255506516,0.00463615544140339,0.684556603431702,0,34.8300018310547,0.271924287080765,0.806314527988434,-0.13823889195919,0,34.8300018310547,-0.359950125217438,0.976227760314941,0.323722183704376,0,34.8299980163574,0,0,0,1,0]);
    
    
  6. Ahora, para cada botón deberemos creamos la funcción que alterna la variable que indica si está activo. Para ello la negamos. Después llamamos a la función mostrarFiltros, que es la que se encarga de apllicar los filtros al elemento.
  7. sombra_btn.addEventListener(MouseEvent.MOUSE_UP,aplicarSombra);
    
    function aplicarSombra(event:MouseEvent):void {
    
    	filtroSombra=! filtroSombra;
    
    	mostrarFiltros();
    
    }
    
    
    
    desenfocar_btn.addEventListener(MouseEvent.MOUSE_UP,aplicarDesenfocar);
    
    function aplicarDesenfocar(event:MouseEvent):void {
    
    	filtroDesenfocar=! filtroDesenfocar;
    
    	mostrarFiltros();
    
    }
    
    
    
    iluminado_btn.addEventListener(MouseEvent.MOUSE_UP,aplicarIluminado);
    
    function aplicarIluminado(event:MouseEvent):void {
    
    	filtroIluminado=! filtroIluminado;
    
    	mostrarFiltros();
    
    }
    
    
    
    bisel_btn.addEventListener(MouseEvent.MOUSE_UP,aplicarBisel);
    
    function aplicarBisel(event:MouseEvent):void {
    
    	filtroBisel=! filtroBisel;
    
    	mostrarFiltros();
    
    }
    
    
    
    iluminadoDeg_btn.addEventListener(MouseEvent.MOUSE_UP,aplicarIluminadodeg);
    
    function aplicarIluminadodeg(event:MouseEvent):void {
    
    	filtroIluminadoDeg=! filtroIluminadoDeg;
    
    	mostrarFiltros();
    
    }
    
    
    
    biselDeg_btn.addEventListener(MouseEvent.MOUSE_UP,aplicarBiseldeg);
    
    function aplicarBiseldeg(event:MouseEvent):void {
    
    	filtroBiselDeg=! filtroBiselDeg;
    
    	mostrarFiltros();
    
    }
    
    
    
    ajustarColor_btn.addEventListener(MouseEvent.MOUSE_UP,aplicarColor);
    
    function aplicarColor(event:MouseEvent):void {
    
    	filtroAjustarColor=! filtroAjustarColor;
    
    	mostrarFiltros();
    
    }
  8. Finalmente definiremos la función mostrarFiltros que se ejecutará cada vez que se pulse un botón. Evalúa cada variable apra decidir si aplica el filtro o no:
    function mostrarFiltros() {
    
    	var matrizFiltros:Array=[];
    
    	if (filtroSombra) {
    
    		matrizFiltros.push(sombra);
    
    	}
    
    	if (filtroDesenfocar) {
    
    		matrizFiltros.push(desenfocar);
    
    	}
    
    	if (filtroIluminado) {
    
    		matrizFiltros.push(iluminado);
    
    	}
    
    	if (filtroBisel) {
    
    		matrizFiltros.push(bisel);
    
    	}
    
    	if (filtroIluminadoDeg) {
    
    		matrizFiltros.push(iluminadoDeg);
    
    	}
    
    	if (filtroBiselDeg) {
    
    		matrizFiltros.push(biselDeg);
    
    	}
    
    	if (filtroAjustarColor) {
    
    		matrizFiltros.push(ajustarColor);
    
    	}
    
    	miClip.filters=matrizFiltros;
    
    }
    Al principio de la función creamos una variable de tipo Array que almacenará los filtros activos (los que se encuentren a true). Luego utilizando el condicional if vemos si el filtro se encuentra activado, en caso afirmativo, creamos el filtro (con las opciones que pusimos la principio) e introducimos el filtro en la matriz matrizFiltros.

    Al final volcamos los filtros guardados en matrizFiltros en la propiedad filters de miClip.

Hemos conseguido que se puedan cargar y descargar los filtros con una simple variable que evalúa si el filtro se encuentra activo o no.

   Inicio    





Página inicial  Cursos Informática Gratuitos

Síguenos en:   Facebook       Sobre aulaClic            Política de Cookies


© aulaClic. Todos los derechos reservados. Prohibida la reproducción por cualquier medio.

{cookies_law.style.display='block';}