Pacote | flash.filters |
Classe | public class ShaderFilter |
Herança | ShaderFilter BitmapFilter Object |
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5 |
Para criar um novo filtro, use o construtor new ShaderFilter()
. O uso dos filtros depende do objeto ao qual você vai aplicar o filtro:
- Para aplicar filtros em clipes de filme, campos de texto, botões e vídeo, use a propriedade
filters
(herdada do DisplayObject). Definir a propriedadefilters
de um objeto não modifica o objeto e você pode remover o filtro limpando a propriedadefilters
. - Para aplicar os filtros aos objetos BitmapData, use o método
BitmapData.applyFilter()
. A ação de chamar oapplyFilter()
em um objeto BitmapData usa o objeto BitmapData de origem e o objeto do filtro e cria uma imagem filtrada como resultado.
Caso você aplique um filtro a um objeto de exibição, o valor da propriedade cacheAsBitmap
do objeto é definido como true. Se você remover todos os filtros, o valor original de cacheAsBitmap
é restaurado.
Esse filtro suporta dimensionamento do palco. Entretanto, ele não suporta dimensionamento geral, rotação e inclinação. Se o próprio objeto for dimensionado (se as propriedades scaleX
e scaleY
forem definidas para 100%), o filtro não será dimensionado. Ele será dimensionado somente quando o usuário aumentar o zoom no palco.
Um filtro não é aplicado caso a imagem resultante exceda as dimensões máximas. No AIR 1.5 e no Flash Player 10, o máximo é de 8,191 pixels de largura ou de altura, e o número total de pixels não pode exceder 16,777,215 pixels. (Dessa forma, caso uma imagem tenha 8,191 pixels de largura, ela só pode ter 2.048 pixels de altura.) No Flash Player 9 e anteriores e no AIR 1.1 e anteriores, a limitação é de 2.880 pixels de altura e de 2.880 pixels de largura. Por exemplo, se você aumentar o zoom em um clipe de filme grande com um filtro aplicado, o filtro será desativado se a imagem resultante exceder as dimensões máximas.
Para especificar a ocorrência de Shader a ser usada com o filtro, passe a ocorrência de Shader como um argumento para o construtor ShaderFilter()
ou defina-o como sendo o valor da propriedade shader
.
Para permitir que a saída do shader ultrapasse os limites do objeto filtrado, use as propriedades leftExtension
, rightExtension
, topExtension
e bottomExtension
.
Elementos da API relacionados
flash.display.DisplayObject.cacheAsBitmap
flash.display.BitmapData.applyFilter()
flash.display.Shader
Propriedade | Definido por | ||
---|---|---|---|
bottomExtension : int
O crescimento em pixels na parte inferior do objeto de destino. | ShaderFilter | ||
constructor : Object
Uma referência ao objeto de classe ou à função de construtor de uma determinada ocorrência de objeto. | Object | ||
leftExtension : int
O crescimento em pixels no lado esquerdo do objeto de destino. | ShaderFilter | ||
rightExtension : int
O crescimento em pixels no lado direito do objeto de destino. | ShaderFilter | ||
shader : Shader
O shader a ser usado no filtro. | ShaderFilter | ||
topExtension : int
O crescimento em pixels na parte superior do objeto de destino. | ShaderFilter |
Método | Definido por | ||
---|---|---|---|
ShaderFilter(shader:Shader = null)
Cria um novo filtro de shader. | ShaderFilter | ||
Retorna um objeto BitmapFilter que é uma cópia exata do BitmapFilter original. | BitmapFilter | ||
Indica se um objeto tem uma propriedade especificada definida. | Object | ||
Indica se uma ocorrência da classe Object está na cadeia de protótipos do objeto especificado como o parâmetro. | Object | ||
Indica se a propriedade especificada existe e é enumerável. | Object | ||
Define a disponibilidade de uma propriedade dinâmica para operações de repetição. | Object | ||
Retorna a representação da string deste objeto, formatado segundo as convenções específicas para a localidade. | Object | ||
Retorna a representação de string do objeto especificado. | Object | ||
Retorna o valor primitivo do objeto especificado. | Object |
bottomExtension | propriedade |
bottomExtension:int
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5 |
O crescimento em pixels na parte inferior do objeto de destino.
O crescimento é a área que ultrapassa os limites do objeto de destino passado para o shader durante a execução. Durante a execução, o Flash Player ou o AIR computa os limites normais de um clipe de filme e estende os limites com base nos valores leftExtension
, rightExtension
, topExtension
e bottomExtension
.
O valor padrão é 0.
Implementação
public function get bottomExtension():int
public function set bottomExtension(value:int):void
leftExtension | propriedade |
leftExtension:int
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5 |
O crescimento em pixels no lado esquerdo do objeto de destino.
O crescimento é a área que ultrapassa os limites do objeto de destino passado para o shader durante a execução. Durante a execução, o Flash Player ou o AIR computa os limites normais de um clipe de filme e estende os limites com base nos valores leftExtension
, rightExtension
, topExtension
e bottomExtension
.
O valor padrão é 0.
Implementação
public function get leftExtension():int
public function set leftExtension(value:int):void
rightExtension | propriedade |
rightExtension:int
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5 |
O crescimento em pixels no lado direito do objeto de destino.
O crescimento é a área que ultrapassa os limites do objeto de destino passado para o shader durante a execução. Durante a execução, o Flash Player ou o AIR computa os limites normais de um clipe de filme e estende os limites com base nos valores leftExtension
, rightExtension
, topExtension
e bottomExtension
.
O valor padrão é 0.
Implementação
public function get rightExtension():int
public function set rightExtension(value:int):void
shader | propriedade |
shader:Shader
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5 |
O shader a ser usado no filtro.
O Shader atribuído à propriedade shader
deve especificar pelo menos uma entrada image4
. A entrada não precisa ser especificada no código usando a propriedade input
do objeto ShaderInput associado. Na verdade, o objeto no qual o filtro é aplicado é usado automaticamente como sendo a primeira entrada (a entrada com index
0). Um shader usado como filtro pode especificar mais de uma entrada, quando qualquer entrada adicional deve ser especificada com a definição da propriedade input
da ocorrência de ShaderInput.
Quando você atribui uma ocorrência de Shader à propriedade, o shader é copiado internamente e a operação de filtro usa essa cópia interna, e não uma referência ao shader original. Todas as alterações feitas no shader como, por exemplo, alterar o valor de um parâmetro, entrada ou código de bytes, não são aplicadas ao shader copiado usado no filtro. Para que as alterações feitas no shader sejam levadas em conta na saída do filtro, você deve reatribuir a ocorrência de Shader à propriedade shader
. Assim como acontece com todos os filtros, você deve reatribuir a ocorrência de ShaderFilter à propriedade filters
do objeto display para que as alterações sejam feitas no filtro.
Implementação
public function get shader():Shader
public function set shader(value:Shader):void
topExtension | propriedade |
topExtension:int
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5 |
O crescimento em pixels na parte superior do objeto de destino.
O crescimento é a área que ultrapassa os limites do objeto de destino passado para o shader durante a execução. Durante a execução, o Flash Player ou o AIR computa os limites normais de um clipe de filme e estende os limites com base nos valores leftExtension
, rightExtension
, topExtension
e bottomExtension
.
O valor padrão é 0.
Implementação
public function get topExtension():int
public function set topExtension(value:int):void
ShaderFilter | () | Construtor |
public function ShaderFilter(shader:Shader = null)
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5 |
Cria um novo filtro de shader.
Parâmetrosshader:Shader (default = null ) — O shader a ser usado no filtro. Para obter detalhes e limitações que o shader deve respeitar, consulte a descrição da propriedade shader .
|
Elementos da API relacionados
shader
de ShaderFilter. O código desenha um círculo em uma ocorrência de Sprite e o adiciona ao palco. Quando o shader é carregado, o filtro é aplicado a Sprite.
Esse exemplo supõe a existência de um arquivo de código de bytes do sombreador chamado "gradient.pbj" no mesmo diretório do diretório de saída do aplicativo.
// // 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]; } } }
Wed Jun 13 2018, 11:10 AM Z