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):void
progress | 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():Number
shader | 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):void
Elementos 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):void
width | 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):void
ShaderJob | () | 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.ShaderEvent
propriedade 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