| Pacote | flash.display |
| Classe | public class ShaderJob |
| Herança | ShaderJob EventDispatcher Object |
| Versão da linguagem: | ActionScript 3.0 |
| Versões de runtime: | Flash Player 10, AIR 1.5 |
Há duas razões importantes para usar um sombreador no modo autônomo:
- Processamento de dados que não são de imagens: com uma ocorrência de ShaderJob, você tem controle sobre os valores de entrada e sobre como o resultado do sombreador será usado. O sombreador pode retornar o resultado como dados binários ou numéricos, em vez de dados de imagem.
- Processamento em segundo plano: alguns sombreadores são complexos e exigem muito mais tempo muito para serem executados. A execução de um sombreador complexo na execução principal de um aplicativo poderia atrasar as demais partes do aplicativo, por exemplo, a interação do usuário ou a atualização da tela. Com uma ocorrência do ShaderJob, você pode executar o sombreador em segundo plano. Quando um sombreador é executado dessa forma, a execução da operação de sombreador ocorre separadamente da execução principal do aplicativo.
A propriedade shader (ou o parâmetro do construtor) especifica a ocorrência de Shader que representa o sombreador usado na operação. Você fornece uma entrada ou parâmetro esperado pelo sombreador usando a ocorrência de ShaderParameter ou ShaderInput associada.
Antes da execução de uma operação de ShaderJob, forneça um objeto no qual o resultado está gravado, definindo-o como o valor da propriedade target. Quando a operação de sombreador for concluída, o resultado será gravado no objeto target.
Para começar a operação de sombreador em segundo plano, chame o método start(). Quando a operação for concluída, o resultado será gravado no objeto target. A essa altura, a ocorrência de ShaderJob despacha um evento complete, notificando os ouvintes de que o resultado está disponível.
Para executar um sombreador de forma síncrona, ou seja, sem executá-lo em segundo plano, chame o método start() e informe true como argumento. O sombreador é executado na cadeia de execução principal e o seu código fica pausado até a operação ser concluída. Após a conclusão, o resultado é gravado no objeto target. Nesse momento, o aplicativo continua em execução na linha de código seguinte.
Elementos da API relacionados
| Propriedade | Definido por | ||
|---|---|---|---|
![]() | constructor : Object
Uma referência ao objeto de classe ou à função de construtor de uma determinada ocorrência de objeto. | Object | |
| height : int
A altura dos dados de resultado em target, caso este seja ByteArray ou Vector.<Number> instância. | ShaderJob | ||
| progress : Number [somente leitura]
O andamento de um shader em execução. | ShaderJob | ||
| shader : Shader
O shader usado na operação. | ShaderJob | ||
| target : Object
O objeto no qual o resultado da operação de shader é gravado. | ShaderJob | ||
| width : int
A largura dos dados de resultado em target caso este seja ByteArray ou Vector.<Number> instância. | ShaderJob | ||
| Método | Definido por | ||
|---|---|---|---|
| ShaderJob | |||
![]() | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registra um objeto de ouvinte de evento em um objeto EventDispatcher, de forma que o ouvinte receba a notificação de um evento. | EventDispatcher | |
Cancela a operação de shader em execução no momento. | ShaderJob | ||
![]() |
Envia um evento para o fluxo de eventos. | EventDispatcher | |
![]() |
Verifica se o objeto EventDispatcher tem ouvintes registrados para um tipo específico de evento. | EventDispatcher | |
![]() |
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 | |
![]() |
Remove um ouvinte do objeto EventDispatcher. | EventDispatcher | |
![]() |
Define a disponibilidade de uma propriedade dinâmica para operações de repetição. | Object | |
Inicia uma operação de sombreador no modo síncrono ou assíncrono, de acordo com o valor do parâmetro waitForCompletion. | ShaderJob | ||
![]() |
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 | |
![]() |
Verifica se um ouvinte de evento está registrado nesse objeto EventDispatcher ou em qualquer um de seus ancestrais para o tipo de evento especificado. | EventDispatcher | |
| Evento | Resumo | Definido por | ||
|---|---|---|---|---|
![]() | [transmissão de evento] Despachado quando o Flash Player ou o aplicativo do AIR ganha o foco do sistema operacional e está se tornando inativo. | EventDispatcher | ||
| Despachado quando ShaderJob, que é executado de forma assíncrona, conclui o processamento dos dados usando o sombreador. | ShaderJob | |||
![]() | [transmissão de evento] Despachado quando o Flash Player ou o aplicativo do AIR perde o foco do sistema operacional e está se tornando inativo. | EventDispatcher | ||
height | propriedade |
height:int| Versão da linguagem: | ActionScript 3.0 |
| Versões de runtime: | Flash Player 10, AIR 1.5 |
A altura dos dados de resultado em target caso este seja ByteArray ou Vector.Ocorrência de <Number>. O tamanho de ByteArray ou Vector.A ocorrência de <Number> é ampliada se necessário, e os dados existentes são sobregravados.
Implementação
public function get height():int public function set height(value:int):voidprogress | propriedade |
progress:Number [somente leitura] | Versão da linguagem: | ActionScript 3.0 |
| Versões de runtime: | Flash Player 10, AIR 1.5 |
O andamento de um shader em execução. Esta propriedade é um valor entre 0 e 1. Zero é o valor inicial (0% concluído). 1 indica que o shader concluiu a operação.
Caso o método cancel() seja chamado, esta propriedade se torna undefined, e você não pode usar com confiança o valor até o reinício da operação de shader.
Implementação
public function get progress():Numbershader | propriedade |
shader:Shader| Versão da linguagem: | ActionScript 3.0 |
| Versões de runtime: | Flash Player 10, AIR 1.5 |
O shader usado na operação. Qualquer entrada ou parâmetro esperado pelo shader deve ser fornecido usando a propriedade ShaderInput ou ShaderParameter da propriedade data da ocorrência de Shader. Qualquer entrada deve ser fornecida usando o ShaderInput correspondente mesmo que seja igual à do objeto target.
Para processar um ByteArray que contém uma matriz linear de dados (em oposição aos dados de imagem), defina a ocorrência de ShaderInput height como 1 e width como o número de valores de ponto flutuante de 32 bits em ByteArray. Nesse caso, a entrada no shader deve ser definida com o tipo de dados image1.
Implementação
public function get shader():Shader public function set shader(value:Shader):voidElementos da API relacionados
target | propriedade |
target:Object| Versão da linguagem: | ActionScript 3.0 |
| Versões de runtime: | Flash Player 10, AIR 1.5 |
O objeto no qual o resultado da operação de shader é gravado. Esse objeto deve ser BitmapData, ByteArray ou Vector.Ocorrência de <Number>.
Implementação
public function get target():Object public function set target(value:Object):voidwidth | propriedade |
width:int| Versão da linguagem: | ActionScript 3.0 |
| Versões de runtime: | Flash Player 10, AIR 1.5 |
A largura dos dados de resultado em target caso este seja ByteArray ou Vector.Ocorrência de <Number>. O tamanho de ByteArray ou Vector.A ocorrência de <Number> é ampliada se necessário, e os dados existentes são sobregravados.
Implementação
public function get width():int public function set width(value:int):voidShaderJob | () | Construtor |
public function ShaderJob(shader:Shader = null, target:Object = null, width:int = 0, height:int = 0)| Versão da linguagem: | ActionScript 3.0 |
| Versões de runtime: | Flash Player 10, AIR 1.5 |
Parâmetros
shader:Shader (default = null) — O shader a ser usado na operação.
| |
target:Object (default = null) — O objeto no qual o resultado da operação de shader é gravado. Esse argumento deve ser BitmapData, ByteArray ou Vector.Ocorrência de <Number>.
| |
width:int (default = 0) — A largura dos dados de resultado em target caso este seja ByteArray ou Vector.Ocorrência de <Number>. O tamanho de ByteArray ou Vector.A ocorrência de <Number> é ampliada se necessário, e os dados existentes são sobregravados.
| |
height:int (default = 0) — A altura dos dados de resultado em target caso este seja ByteArray ou Vector.Ocorrência de <Number>. O tamanho de ByteArray ou Vector.A ocorrência de <Number> é ampliada se necessário, e os dados existentes são sobregravados.
|
cancel | () | método |
public function cancel():void| Versão da linguagem: | ActionScript 3.0 |
| Versões de runtime: | Flash Player 10, AIR 1.5 |
Cancela a operação de shader em execução no momento. Os dados resultantes já calculados são descartados. O evento complete não é despachado.
Chamar cancel() várias vezes não tem nenhum efeito adicional.
start | () | método |
public function start(waitForCompletion:Boolean = false):void| Versão da linguagem: | ActionScript 3.0 |
| Versões de runtime: | Flash Player 10, AIR 1.5 |
Inicia uma operação de shader no modo síncrono ou assíncrono, de acordo com o valor do parâmetro waitForCompletion.
No modo assíncrono (quando waitForCompletion é false), que é o padrão, a execução do ShaderJob ocorre em segundo plano. A operação de shader não afeta a capacidade de resposta da exibição e de outras operações. No modo síncrono, a chamada start() é retornada imediatamente e o programa continua na linha de código seguinte. Quando a operação assíncrona de sombreador é concluída, o resultado fica disponível e o evento complete é despachado.
Somente uma operação de ShaderJob em segundo plano é executada por vez. As operações de sombreador são mantidas em fila até sua execução. Se você chamar o método start() durante a execução da operação de sombreador, a operação adicional será incluída no final da fila. Posteriormente, ela será executada na sua vez.
Para executar uma operação de sombreador no modo síncrono, chame start() com valor true para o parâmetro waitForCompletion (o único parâmetro). O seu código fica pausado do momento em que start() é chamado até a operação de sombreador ser concluída. Em seguida, o resultado fica disponível e a execução continua na linha de código seguinte.
Quando você chama o método start(), a ocorrência de Shader na propriedade shader é copiada internamente. A operação de shader 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 processamento do shader. Para incorporar as alterações feitas no shader ao processamento, chame o método cancel() (se necessário) e o método start() novamente para reiniciar o processamento do shader.
Durante a execução da operação do shader, o valor target do objeto não é alterado. Quando a operação é concluída e o evento complete é despachado no modo assíncrono, todo o resultado é gravado no objeto target de uma vez. Se o objeto target for uma ocorrência de BitmapData e o método dispose() for chamado antes da conclusão da operação, o evento complete continuará sendo despachado no modo assíncrono. No entanto, os dados do resultado não serão gravados no objeto BitmapData por se encontrarem em um estado de descarte.
Parâmetros
waitForCompletion:Boolean (default = false) — Especifica se o shader será executado em segundo plano (false, o padrão) ou na execução do programa principal (true).
|
Eventos
complete: — Despachado quando a operação for concluída, se p método start() for chamado com um argumento waitForCompletion de true.
|
Lança
ArgumentError — Quando a propriedade target é null ou não é BitmapData, ByteArray ou Vector.Ocorrência de <Number>.
| |
ArgumentError — Quando o shader especifica uma entrada de imagem não fornecida.
| |
ArgumentError — Quando for ByteArray ou Vector.A ocorrência de <Number> é usada como uma entrada e as propriedades width e height não são especificadas para ShaderInput ou os valores especificados não correspondem à quantidade de dados no objeto de entrada. Consulte a propriedade ShaderInput.input para obter mais informações.
|
complete | Evento |
flash.events.ShaderEventpropriedade ShaderEvent.type =
flash.events.ShaderEvent.COMPLETE| Versão da linguagem: | ActionScript 3.0 |
| Versões de runtime: | Flash Player 10, AIR 1.5 |
Despachado quando ShaderJob, que é executado de forma assíncrona, conclui o processamento dos dados usando o sombreador. Uma ocorrência de ShaderJob é executada de forma assíncrona quando o método start() é chamado com um valor false para o parâmetro waitForCompletion.
type de um objeto de evento complete.
Esse evento tem as seguintes propriedades:
| Propriedade | Valor |
|---|---|
bubbles | false |
bitmapData | O objeto BitmapData que contém o resultado da operação concluída (ou null caso o destino não seja um objeto BitmapData). |
byteArray | O objeto ByteArray que contém o resultado da operação concluída (ou null caso o destino não seja um objeto ByteArray). |
cancelable | false; não há comportamento padrão a ser cancelado. |
currentTarget | O objeto que está processando ativamente o objeto de evento com um ouvinte de evento. |
target | O objeto ShaderJob que informa a conclusão. |
vector | Vector.A ocorrência de <Number> que contém o resultado da operação concluída (ou null caso o destino não seja Vector).Ocorrência de <Number>). |
Wed Jun 13 2018, 11:10 AM Z
Ocultar propriedades públicas herdadas
Mostrar propriedades públicas herdadas