Dibujar en un cristal con vaho en Actionscript 3.0

Dibujar en un cristal con vaho en Actionscript 3.0

Etiquetas: addEventListener MOUSE_MOVE drawCircle beginFill endFill

Imagen en reemplazo de flash

Este ejemplo muestra como hacer el efecto de "pintar sobre el vaho" en un cristal. Esta es la manera más sencilla que en encontrado de hacerlo, desde el punto de vista de alguien con pocos conocimientos de programación. Para hacer este efecto necesitamos:

-Imagen del cristal con vaho:

Ventana con vaho

-Imagen de cristal sin vaho:

Imagen de cristal sin vaho

-Nociones de AS3 (Sobre todo de la API de dibujo)

Los pasos a seguir serían los siguientes:

-Importar las dos imágenes a Flash, y poner cada una en una capa (la imagen sin vaho por encima de la con vaho), en la posición (0,0)

-Crear un clip vacio y llamarlo "Mascara_mc". Ponerlo en (0,0)

-Hacer que "Mascara_mc" sea la mascara para la imagen sin vaho. Aquí tenemos un pequeño "problema", y es que al estar vacio, no nos va a aplicar bien la máscara. Por ello, antes de ponerlo como máscara, nos metemos dentro de "Mascara_mc" y dibujamos un pequeño cuadrado.

La linea de tiempo nos quedaría asi:

Linea de tiempo en Flash

-Por último, tenemos que programar la escena, para que cuando hagamos click, se dibuje dentro de "Mascara_mc" y se vaya destapando la imagen con vaho.

El código en Actionscript 3.0, y el resultado, son los siguientes:


  1. package{
  2. 	//Importo las clases necesarias
  3. 	import flash.display.MovieClip;
  4. 	import flash.display.Shape;
  5. 	import flash.events.Event;
  6. 	import flash.events.MouseEvent;
  7.  
  8. 	public class Vaho extends MovieClip{
  9.  
  10. 		private var pintar:Boolean = false
  11.  
  12. 		public function Vaho():void{
  13. 			//Añado los eventos al escenario
  14. 			stage.addEventListener(MouseEvent.MOUSE_DOWN,siPintar);
  15. 			stage.addEventListener(MouseEvent.MOUSE_UP,noPintar);
  16. 			stage.addEventListener(MouseEvent.MOUSE_MOVE,mover);
  17. 		}
  18.  
  19. 		private function siPintar(e:Event):void{
  20. 			pintar = true;
  21. 		}
  22.  
  23. 		private function noPintar(e:Event):void{
  24. 			pintar = false;
  25. 		}
  26.  
  27. 		private function mover(e:Event):void{
  28. 			if(!pintar)return;
  29. 			//Dibujo un circulo alrededor del puntero cada vez que muevo el ratón y pintar = true
  30. 			//Estos circulos van rellenando Mascara_mc y haciendo que se destape la imagen sin vaho
  31. 			Mascara_mc.graphics.lineStyle(10,0x000000);
  32. 			Mascara_mc.graphics.beginFill(0x000000);
  33. 			Mascara_mc.graphics.drawCircle(mouseX,mouseY,10);
  34. 			Mascara_mc.graphics.endFill();
  35. 		}
  36.  
  37. 	}
  38.  
  39. }

Descargar archivos

Comentarios
    • Autor
    • Jose Luis Ferreyra Ostolaza
    excelente tutorial, la verdad muy interesante jolafe
    • Autor
    • Hector Matias
    un eselente trabajo los felicito
    • Autor
    • ambrosio
    Muy bueno, pero seria mas interesante definir el termino vaho.
    • Autor
    • ASL
    Hola! Oye a mi me sale un error, dice que los paquetes no se pueden anidar, que es eso?? como lo soluciono??? AYUDA por fa!
Dejar un comentario
Tu nombre (obligatorio):

E-mail (obligatorio, no se mostrará):

Web:

Comentario: