Paquete | flash.filters |
Clase | public class ShaderFilter |
Herencia | ShaderFilter BitmapFilter Object |
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5 |
Para crear un nuevo filtro, utilice el constructor new ShaderFilter()
. El uso de filtros depende del objeto al que se aplique el filtro:
- Para aplicar filtros a clips de película, campos de texto, botones y vídeo, utilice la propiedad
filters
(heredada de DisplayObject). La propiedadfilters
de un objeto no lo modifica y se puede quitar el filtro borrando la propiedadfilters
. - Para aplicar filtros a objetos BitmapData, utilice el método
BitmapData.applyFilter()
. Cuando se llama aapplyFilter()
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, el valor de la propiedad cacheAsBitmap
del objeto se establece en true. Si quita todos los filtros, se restaurará el valor original de cacheAsBitmap
.
Este filtro admite la aplicación de escala en el escenario. Sin embargo, no admite escalado general, rotación ni sesgo. Cuando se escala el propio objeto (si las propiedades scaleX
y scaleY
no se establecen en 100%), no se escala el filtro. Sólo se escalará cuando el usuario acerque el escenario.
No se aplica ningún filtro si la imagen resultante excede las dimensiones máximas. En AIR 1.5 y en Flash Player 10, la anchura o altura máxima en píxeles es de 8,191, y el número total de píxeles no puede superar los 16,777,215. (De este modo, si una imagen tiene 8,191 píxeles de anchura, sólo podrá tener 2.048 píxeles de altura.) En Flash Player 9 y versiones anteriores y en AIR 1.1 y versiones anteriores, el límite es 2.880 píxeles de alto y 2.880 píxeles de ancho. 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 supera las dimensiones máximas.
Para especificar la instancia de Shader que se utiliza con el filtro, transfiera la instancia de Shader como un argumento del constructor ShaderFilter()
, o establézcalo como el valor de la propiedad shader
.
Para que la salida de shader vaya más allá de los límites del objeto filtrado, utilice las propiedades leftExtension
, rightExtension
, topExtension
y bottomExtension
.
Elementos de API relacionados
flash.display.DisplayObject.cacheAsBitmap
flash.display.BitmapData.applyFilter()
flash.display.Shader
Propiedad | Definido por | ||
---|---|---|---|
bottomExtension : int
El crecimiento en píxeles debajo del objeto de destino. | ShaderFilter | ||
constructor : Object
Una referencia a la clase de objeto o función constructora para una instancia de objeto determinada. | Object | ||
leftExtension : int
El crecimiento en píxeles a la izquierda del objeto de destino. | ShaderFilter | ||
rightExtension : int
El crecimiento en píxeles a la derecha del de destino. | ShaderFilter | ||
shader : Shader
Sombreado que se utiliza en el filtro. | ShaderFilter | ||
topExtension : int
El crecimiento en píxeles encima del objeto de destino. | ShaderFilter |
Método | Definido por | ||
---|---|---|---|
ShaderFilter(shader:Shader = null)
Crea un nuevo filtro de sombreado. | ShaderFilter | ||
Devuelve un objeto BitmapFilter que es una copia exacta del objeto BitmapFilter original. | BitmapFilter | ||
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 de este objeto, con formato según las convenciones específicas de configuración regional. | Object | ||
Devuelve la representación de cadena del objeto especificado. | Object | ||
Devuelve el valor simple del objeto especificado. | Object |
bottomExtension | propiedad |
bottomExtension:int
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5 |
El crecimiento en píxeles debajo del objeto de destino.
El crecimiento es el área que supera los límites del objeto de destino que se transfiere al objeto shader durante la ejecución. En tiempo de ejecución, Flash Player o AIR calcula los límites normales de un clip de película y los amplía en función de los valores de leftExtension
, rightExtension
, topExtension
y bottomExtension
.
El valor predeterminado es 0.
Implementación
public function get bottomExtension():int
public function set bottomExtension(value:int):void
leftExtension | propiedad |
leftExtension:int
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5 |
El crecimiento en píxeles a la izquierda del objeto de destino.
El crecimiento es el área que supera los límites del objeto de destino que se transfiere al objeto shader durante la ejecución. En tiempo de ejecución, Flash Player o AIR calcula los límites normales de un clip de película y los amplía en función de los valores de leftExtension
, rightExtension
, topExtension
y bottomExtension
.
El valor predeterminado es 0.
Implementación
public function get leftExtension():int
public function set leftExtension(value:int):void
rightExtension | propiedad |
rightExtension:int
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5 |
El crecimiento en píxeles a la derecha del de destino.
El crecimiento es el área que supera los límites del objeto de destino que se transfiere al objeto shader durante la ejecución. En tiempo de ejecución, Flash Player o AIR calcula los límites normales de un clip de película y los amplía en función de los valores de leftExtension
, rightExtension
, topExtension
y bottomExtension
.
El valor predeterminado es 0.
Implementación
public function get rightExtension():int
public function set rightExtension(value:int):void
shader | propiedad |
shader:Shader
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5 |
Sombreado que se utiliza en el filtro.
El objeto Shader asignado a la propiedad shader
debe especificar al menos una entrada image4
. No es necesario que la entrada se especifique con código de la propiedad input
asociada al objeto ShaderInput. En su lugar, se utiliza automáticamente el objeto al que se aplica el filtro como primera entrada (la entrada con index
0). Un objeto shader empleado como filtro puede especificar más de una entrada. En ese caso, cualquier entrada adicional debe especificarse mediante la propiedad input
de la instancia de ShaderInput.
Cuando se asigna una instancia de Shader a esta propiedad, el sombreado se copia internamente y la operación del filtro utiliza la copia interna, no una referencia al objeto shader original. Todos los cambios realizados en el objeto shader, como la modificación de los valores de los parámetros, la entrada o el código de bytes, no se aplican al sombreado copiado que se utiliza en el filtro. Para que los cambios del objeto shader se tengan en cuenta en la salida del filtro, debe reasignar la instancia de Shader a la propiedad shader
. Como con todos los filtros, también se debe reasignar la instancia de ShaderFilter a la propiedad filters
de objeto de visualización para poder aplicar los cambios del filtro.
Implementación
public function get shader():Shader
public function set shader(value:Shader):void
topExtension | propiedad |
topExtension:int
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5 |
El crecimiento en píxeles encima del objeto de destino.
El crecimiento es el área que supera los límites del objeto de destino que se transfiere al objeto shader durante la ejecución. En tiempo de ejecución, Flash Player o AIR calcula los límites normales de un clip de película y los amplía en función de los valores de leftExtension
, rightExtension
, topExtension
y bottomExtension
.
El valor predeterminado es 0.
Implementación
public function get topExtension():int
public function set topExtension(value:int):void
ShaderFilter | () | Información sobre |
public function ShaderFilter(shader:Shader = null)
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5 |
Crea un nuevo filtro de sombreado.
Parámetrosshader:Shader (default = null ) — Sombreado que se utiliza en el filtro. Para obtener información y conocer los límites a los que debe ajustarse el sombreado, consulte la descripción de la propiedad shader .
|
Elementos de API relacionados
shader
de un filtro ShaderFilter. El código dibuja un círculo en una instancia de Sprite y lo añade al escenario. Cuando se carga el objeto shader, se aplica el filtro de sombreado a la clase Sprite.
Tenga en cuenta que este ejemplo asume que existe un archivo de código de bytes de sombreado llamado "gradient.pbj" en el mismo directorio que el directorio de salida de la aplicación.
// // Source code for the shader: // <languageVersion : 1.0;> kernel RedGradientFilter < namespace: "Adobe::Example"; vendor: "Adobe examples"; version: 1; description: "Applies a gradient across the red channel of the input image."; > { input image4 src; output pixel4 dst; parameter float width < description: "The width of the image to which the shader is applied."; minValue: 0.0; >; void evaluatePixel() { pixel4 temp = sampleNearest(src, outCoord()); temp.r = 1.0 - (outCoord().x * (1.0 / width)); dst = temp; } } // // ActionScript source code: // package { import flash.display.Shader; import flash.display.Sprite; import flash.events.Event; import flash.filters.ShaderFilter; import flash.net.URLLoader; import flash.net.URLLoaderDataFormat; import flash.net.URLRequest; public class ShaderFilterExample extends Sprite { private var loader:URLLoader; private var s:Sprite; public function ShaderFilterExample() { loader = new URLLoader(); loader.dataFormat = URLLoaderDataFormat.BINARY; loader.addEventListener(Event.COMPLETE, loadCompleteHandler); loader.load(new URLRequest("gradient.pbj")); s = new Sprite(); s.graphics.beginFill(0x009900); s.graphics.drawCircle(100, 100, 100); addChild(s); } private function loadCompleteHandler(event:Event):void { var shader:Shader = new Shader(loader.data); shader.data.width.value = [s.width]; var gradientFilter:ShaderFilter = new ShaderFilter(shader); s.filters = [gradientFilter]; } } }
Tue Jun 12 2018, 02:12 PM Z