1. Efectos (Filtros) Dina Lucia almanzaRita Lucia MuñozCarlos Andrés Martínez
2. Una de las formas de realzar la apariencia de una aplicación es añadir efectos gráficos sencillos, como proyectar una sombra tras una foto para lograr una ilusión de tridimensionalidad o un brillo en torno a un botón con objeto de mostrar que se encuentra activo. A continuación se enumera una serie de tareas que se suelen realizar mediante los filtros de ActionScript: ■ Crear un filtro ■ Aplicar un filtro a un objeto de visualización
3. ■ Aplicar un filtro a los datos de imagen de una instancia de BitmapData ■ Eliminar filtros de un objeto ■ Crear diversos efectos de filtro, como: ■ Iluminado ■ Desenfoque ■ Sombra ■ Nitidez ■ Desplazamiento ■ Detección de bordes ■ Relieve ■ Y muchos otros
4. CONCEPTOS Y TÉRMINOS IMPORTANTES La siguiente lista de referencia contiene términos importantes que se utilizan en este capítulo: ■ Bisel: borde creado iluminando los píxeles de dos de los lados y oscureciendo al mismo tiempo los dos lados opuestos, con lo que se crea un efecto de borde tridimensional utilizado normalmente para botones alzados o cincelados y gráficos similares. ■ Convolución: distorsión de los píxeles de una imagen obtenida combinando el valor de cada píxel con los valores de algunos o todos sus vecinos en diferentes proporciones.
5. ■Desplazamiento: movimiento, o deslizamiento, de los píxeles de una imagen a una nueva posición. ■ Matriz: cuadrícula de números utilizada para realizar determinados cálculos matemáticos aplicando los números de esta cuadrícula a distintos valores y combinando luego los resultados.
6. CREACIÓN DE UN NUEVO FILTRO Para crear un nuevo objeto de filtro, basta con llamar al método constructor de la clase de filtro seleccionada. Por ejemplo, para crear un nuevo objeto DropShadowFilter, se usaría el siguiente código: import flash.filters.DropShadowFilter; var myFilter:DropShadowFilter = new DropShadowFilter();
7. APLICACIÓN DE UN FILTRO A UN OBJETO DE VISUALIZACIÓN Los efectos de filtro se aplican a los objetos de visualización mediante la propiedad filters. Dicha propiedad filters de los objetos de visualización es una instancia de Array cuyos elementos son los objetos de filtro aplicados al objeto de visualización. Para aplicar un único filtro a un objeto de visualización, se debe crear la instancia de filtro, añadirla a una instancia de Array y asignar ese objeto Array a la propiedad filters del objeto de visualización.
8. ELIMINACIÓN DE FILTROS DE UN OBJETO DE VISUALIZACIÓN Eliminar todos los filtros de un objeto de visualización es tan sencillo como asignar un valor nulo a la propiedad filters: myDisplayObject.filters = null;
9. Aplicación de un filtro a un objeto BitmapData Para aplicar un filtro a un objeto BitmapData es necesario utilizar el método applyFilter() del objeto BitmapData: myBitmapData.applyFilter(sourceBitmapData); El método applyFilter() aplica un filtro a un objeto BitmapData de origen, dando lugar a una nueva imagen filtrada. Este método no modifica la imagen original. En vez de eso, el resultado de la aplicación del filtro a la imagen original se almacena en la instancia de BitmapData en la que se llama al método applyFilter().
10. CAMBIO DE FILTROS EN TIEMPO DE EJECUCIÓN Si un objeto de visualización tiene uno o más filtros aplicados, no es posible añadir más filtros a la matriz de la propiedad filters. En vez de eso, para añadir filtros o cambiar el conjunto de filtros aplicados, es necesario crear una copia de toda la matriz filters y realizar las modificaciones en esta matriz provisional. A continuación, esa matriz se vuelve a asignar a la propiedad filters del objeto de visualización para que los filtros se apliquen al objeto.
11. FILTROS DE VISUALIZACIÓN DISPONIBLES ■ Filtro de biselado (clase BevelFilter) ■ Filtro de desenfoque (clase BlurFilter) ■ Filtro de sombra (clase DropShadowFilter) ■ Filtro de iluminado (clase GlowFilter) ■ Filtro de bisel degradado (clase GradientBevelFilter) ■ Filtro de iluminado degradado (clase GradientGlowFilter) ■ Filtro de matriz de colores (clase ColorMatrixFilter) ■ Filtro de convolución (clase ConvolutionFilter) ■ Filtro de mapa de desplazamiento (clase DisplacementMapFilter)