| Paquete | flash.filters |
| Clase | public final class ColorMatrixFilter |
| Herencia | ColorMatrixFilter BitmapFilter Object |
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Nota: en el caso de valores RGBA, el byte más significativo representa el valor del canal rojo, seguido del verde, el azul y, por último, el alfa.
Para crear un nuevo filtro de matriz de colores, utilice la sintaxis new ColorMatrixFilter(). El uso de filtros depende del objeto al que se aplique el filtro:
filters (heredada de DisplayObject). La propiedad filters de un objeto no lo modifica y se puede quitar el filtro borrando la propiedad filters. BitmapData.applyFilter(). Cuando se llama a applyFilter() en un objeto BitmapData, se genera una imagen filtrada al procesar el objeto BitmapData de origen y el objeto de filtro.Si aplica un filtro a un objeto de visualización, la propiedad cacheAsBitmap del objeto de visualización se establece en true. Si quita todos los filtros, se restaurará el valor original de cacheAsBitmap.
Un filtro no se aplica si la imagen resultante supera los 2880 píxeles de anchura o altura. Por ejemplo, si amplía un clip de película grande al que se le ha aplicado un filtro, éste se desactiva si la imagen resultante alcanza el límite de 2880 píxeles.
Véase también
| Propiedad | Definido por | ||
|---|---|---|---|
![]() | constructor : Object
Una referencia a la clase de objeto o función constructora para una instancia de objeto determinada.
| Object | |
| matrix : Array
Conjunto de 20 elementos para la transformación de color 4x5.
| ColorMatrixFilter | ||
![]() | prototype : Object
[static]
Una referencia al objeto prototipo de una clase u objeto de función.
| Object | |
| Método | Definido por | ||
|---|---|---|---|
|
ColorMatrixFilter(matrix:Array = null)
Inicializa una instancia ColorMatrixFilter nueva con los parámetros especificados.
| ColorMatrixFilter | ||
|
Devuelve una copia de este objeto de filtro.
| ColorMatrixFilter | ||
![]() |
Indica si un objeto tiene definida una propiedad especificada.
| Object | |
![]() |
Indica si hay una instancia de la clase Object en la cadena de prototipo del objeto especificado como parámetro.
| Object | |
![]() |
Indica si existe la propiedad especificada y si es enumerable.
| Object | |
![]() |
Establece la disponibilidad de una propiedad dinámica para operaciones de bucle.
| Object | |
![]() |
Devuelve la representación de cadena del objeto especificado.
| Object | |
![]() |
Devuelve el valor simple del objeto especificado.
| Object | |
| matrix | propiedad |
matrix:Array [read-write]
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Conjunto de 20 elementos para la transformación de color 4x5. No se puede modificar directamente el valor de la propiedad matrix (por ejemplo, myFilter.matrix[2] = 1;). En su lugar, debe obtener una referencia a la matriz, realizar el cambio en la referencia y restaurar el valor.
Este filtro de la matriz de colores separa cada píxel de origen en sus componentes rojo, verde, azul y alfa como srcR, srcG, srcB, srcA. Para calcular el resultado de cada uno de los cuatro canales, el valor de cada píxel de la imagen se multiplica por los valores de la matriz de transformación. Opcionalmente, se puede añadir un desplazamiento que oscile entre -255 y 255 para cada resultado (el quinto elemento de cada fila de la matriz). El filtro combina cada componente de color en un único píxel y escribe el resultado. En la siguiente fórmula, el intervalo desde a[0] hasta a[19] corresponde a las entradas 0-19 en la matriz de 20 elementos que se transmite a la propiedad matrix:
redResult = (a[0] * srcR) + (a[1] * srcG) + (a[2] * srcB) + (a[3] * srcA) + a[4] greenResult = (a[5] * srcR) + (a[6] * srcG) + (a[7] * srcB) + (a[8] * srcA) + a[9] blueResult = (a[10] * srcR) + (a[11] * srcG) + (a[12] * srcB) + (a[13] * srcA) + a[14] alphaResult = (a[15] * srcR) + (a[16] * srcG) + (a[17] * srcB) + (a[18] * srcA) + a[19]
Para cada valor de color de la matriz, un valor de 1 equivale al 100% del canal que se envía al resultado, conservando el valor del canal de color.
Los cálculos se realizan con valores de color no multiplicados. Si el gráfico de entrada se compone de valores de color premultiplicados, esos valores se convertirán automáticamente en valores de color no multiplicados para esta operación.
Hay dos modos optimizados disponibles:
Sólo alfa. Cuando pasa al filtro una matriz que ajusta solamente el componente alfa, tal y como aquí se indica, el filtro optimiza su rendimiento:
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 N 0 (donde N se encuentra entre 0,0 y 1,0)
Versión rápida. Disponible sólo con procesadores que disponen de acelerador SSE/AltiVec, como Intel® Pentium 3 y posteriores, Apple® G4 y posteriores. El acelerador se utiliza cuando los términos del multiplicador corresponden al rango comprendido entre -15.99 y 15.99, y los términos del sumador a[4], a[9], a[14] y a[19] corresponden al rango entre -8000 y8000.
public function get matrix():Array
public function set matrix(value:Array):void
TypeError — La matriz es null cuando se define
|
| ColorMatrixFilter | () | constructor |
public function ColorMatrixFilter(matrix:Array = null)
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Inicializa una instancia ColorMatrixFilter nueva con los parámetros especificados.
Parámetrosmatrix:Array (default = null) — Una matriz de 20 elementos organizados en una matriz de 4x5.
|
| clone | () | método |
public override function clone():BitmapFilter
| Versión del lenguaje: | ActionScript 3.0 |
| Versión del reproductor: | Flash Player 9 |
Devuelve una copia de este objeto de filtro.
Valor devueltoBitmapFilter — Una instancia ColorMatrixFilter nueva con las mismas propiedades que la original.
|
buildChild() cuatro veces para cargar y mostrar cuatro instancias de la imagen. La primera llamada a buildChild() toma null como argumento y no aplica ningún filtro a la primera instancia. Todas las llamadas sucesivas a buildChild() toman como argumento una función que se aplica a distintos filtros de matriz de colores en cada instancia sucesiva de la imagen.
La función buildChild() crea un nuevo objeto Loader denominado loader. Para cada llamada a buildChild(), se asocia un detector de eventos al objeto Loader para detectar eventos complete que se controlan con la función transferida a buildChild().
Las funciones applyRed(), applyGreen() y applyBlue() utilizan distintos valores para la matriz matrix para conseguir distintos efectos de ConvolutionFilter.
Nota: para obtener los mejores resultados, utilice una imagen de aproximadamente 80 píxeles de anchura. El nombre y la ubicación del archivo de imagen deben coincidir con el valor transferido a la propiedad url. Por ejemplo, el valor transferido a url en el ejemplo señala a un archivo de imagen llamado "Image.jpg" que se encuentra en el mismo directorio que el archivo SWF.
package {
import flash.display.DisplayObject;
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.filters.ColorMatrixFilter;
import flash.net.URLRequest;
public class ColorMatrixFilterExample extends Sprite {
private var size:uint = 140;
private var url:String = "Image.jpg";
public function ColorMatrixFilterExample() {
buildChild(null);
buildChild(applyRed);
buildChild(applyGreen);
buildChild(applyBlue);
}
private function buildChild(loadHandler:Function):void {
var loader:Loader = new Loader();
loader.x = numChildren * size;
loader.y = size;
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
if (loadHandler != null) {
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadHandler);
}
var request:URLRequest = new URLRequest(url);
loader.load(request);
addChild(loader);
}
private function applyRed(event:Event):void {
var child:DisplayObject = DisplayObject(event.target.loader);
var matrix:Array = new Array();
matrix = matrix.concat([1, 0, 0, 0, 0]); // red
matrix = matrix.concat([0, 0, 0, 0, 0]); // green
matrix = matrix.concat([0, 0, 0, 0, 0]); // blue
matrix = matrix.concat([0, 0, 0, 1, 0]); // alpha
applyFilter(child, matrix);
}
private function applyGreen(event:Event):void {
var child:DisplayObject = DisplayObject(event.target.loader);
var matrix:Array = new Array();
matrix = matrix.concat([0, 0, 0, 0, 0]); // red
matrix = matrix.concat([0, 1, 0, 0, 0]); // green
matrix = matrix.concat([0, 0, 0, 0, 0]); // blue
matrix = matrix.concat([0, 0, 0, 1, 0]); // alpha
applyFilter(child, matrix);
}
private function applyBlue(event:Event):void {
var child:DisplayObject = DisplayObject(event.target.loader);
var matrix:Array = new Array();
matrix = matrix.concat([0, 0, 0, 0, 0]); // red
matrix = matrix.concat([0, 0, 0, 0, 0]); // green
matrix = matrix.concat([0, 0, 1, 0, 0]); // blue
matrix = matrix.concat([0, 0, 0, 1, 0]); // alpha
applyFilter(child, matrix);
}
private function applyFilter(child:DisplayObject, matrix:Array):void {
var filter:ColorMatrixFilter = new ColorMatrixFilter(matrix);
var filters:Array = new Array();
filters.push(filter);
child.filters = filters;
}
private function ioErrorHandler(event:IOErrorEvent):void {
trace("Unable to load image: " + url);
}
}
}
Enviarme un mensaje de correo electrónico cuando se añadan comentarios a esta página | Informe de comentarios
Página actual: http://livedocs.adobe.com/flash/9.0_es/ActionScriptLangRefV3/flash/filters/ColorMatrixFilter.html