Con Flash Professional podemos hacer cosas muy interesantes, y mas cuando agregamos Actionscript a nuestros proyectos. En este tutorial aprenderemos a capturar una imagen desde la Webcam, y a cargar archivos de imagen desde el sistema a nuestra aplicación en Flash.

Webcam Flash

1.- Comenzaremos esta aplicación creando un nuevo proyecto de Actionscript 3 al cual crearemos un nuevo layer, al cual nombraremos contenido, mientras que al layer que por defecto tenemos en el proyecto le llamaremos actions.

2.- Ahora importaremos dos iconos a nuestra aplicación (dentro de nuestro layer contenido), el primero hará referencia a la Webcam y el segundo al archivo del sistema. Ambos archivos que son png los convertiremos en symbol para así poder asignarles un nombre de instancia.

3.- El nombre de instancia que asignaremos a cada uno son: webcam_mcimagen_mc. Crearemos ademas dos cuadros de texto, los cuales posicionaremos uno debajo de cada icono los cuales llamaremos txt_uno y txt_dos, que por el momento estarán vacíos. Añadiremos ademas a nuestra interfaz dos botones desde el panel components. Los nombres de instancia para estos botones serán captura_btn y restart_btn respectivamente, con las etiquetas Captura e Inicio. Ambos botones estarán posicionados debajo de webcam_mc e imagen_mc y los haremos invibiles desde el panel de propiedades.

4.- En nuestro layer actions comenzaremos a colocar nuestro código. Primero haremos que cuando el usuario pase el cursor sobre cada uno de los iconos, visualice un cursor diferente al igual que un botón. Así el usuario sabrá que puede dar clic sobre estos iconos.

5.-Incluiremos un If el cual evaluara si esta disponible una webcam instalada en el equipo para su uso, de esta forma mostrara el icono webcam_mc, de lo contrario solo mostrara imagen_mc. Ademas haremos invisibles ambos iconos por medio de Actionscript, y asignaremos texto a nuestros componentes txt_uno y txt_dos. Para mas información acerca de la clase Camera, sus restricciones y propiedades, aquí.

6.- Ahora crearemos nuestro objeto cámara que sera el que acceda al uso de la webcam para capturar así la imagen y almacenarla temporalmente. Para esto necesitamos ademas de agregarle a webcam_mc un EventListener de evento Clic, el cual ejecutara la función que tomara esa captura (el cual agregaremos dentro del If que evalúa la existencia de la webcam). También haremos visible nuestro botón captura_btn y le agregaremos un EventListener que sera el que se encargue de mostrar la captura en nuestra aplicación.

7.- Nuestra funcion onGuardar sera la que muestre en nuestra aplicación la captura tomada con la webcam. Ademas de hacer visible nuestro botón restart_btn, el cual tendrá un EventListener que ejecute la función onInicio, el cual regresara nuestra aplicación a su estado inicial.

8.- Ahora comenzaremos a agregar la funcionalidad que permitirá la carga de un archivo del sistema. Al igual que a webcam_mc, agregaremos un EventListener de evento Clic a imagen_mc, el cual permitirá buscar en el sistema del usuario una imagen para cargar.

9.- La función onSelectFile se encargara de cargar a nuestro objeto archivo la imagen seleccionada y así, cuando esta carga se haya completado se ejecutara a su vez la función onComplete. Esta función contendrá una variable que guardara momentáneamente dicha imagen seleccionada, y del nodo target del evento recibido tomaremos dicha imagen para entonces pasar dichos datos a nuestro objeto loader.

10.- Para finalizar pasaremos los datos contenidos dentro de loader hacia nuestro objeto preview y así visualizar la imagen en la aplicación. También agregaremos nuestro botón que regresara la aplicación a su estado inicial.

Ahora al ejecutar nuestra aplicación el usuario podrá elegir entre capturar una imagen con la webcam o seleccionar un archivo de imagen para abrir. Ambas técnicas tienen usos muy interesantes aunque a simple vista puede ser sencillo su empleo, la complejidad llega cuando queremos hacer cosas mas grandes e interesantes como el Face Replacement que podemos ver en esta aplicacion de MTV.

Para dominar esta técnica también te recomendamos inscribirte a nuestro curso de ActionScript, donde se ven más ejercicios sobre el tema e inclusive se llegan a combinar con cinemática inversa y papervision.