Pakket | flash.display |
Klasse | public class ShaderJob |
Overerving | ShaderJob EventDispatcher Object |
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10, AIR 1.5 |
Er zijn twee hoofdredenen voor het uitvoeren van een arcering in de zelfstandige modus:
- Het verwerken van gegevens die niet bij een afbeelding horen: met behulp van een ShaderJob-instantie hebt u controle over de invoerwaarden en over de manier waarop het resultaat van de arcering wordt gebruikt. De arcering kan het resultaat retourneren als binaire gegevens of gegevens van het type Number in plaats van afbeeldingsgegevens.
- Achtergrondverwerking: sommige arceringen zijn complex en hebben een lange uitvoeringstijd. Het uitvoeren van een complexe arcering tijdens de hoofduitvoering van een toepassing kan vertraging van andere onderdelen van de toepassing tot gevolg hebben, zoals interactie met de gebruiker of het bijwerken van het scherm. Met behulp van een ShaderJob-instantie kan de arcering op de achtergrond worden uitgevoerd. Als de arcering op deze manier wordt uitgevoerd, staat de bewerking los van de hoofduitvoering van de toepassing.
De eigenschap shader
(of constructorparameter) geeft de Shader-instantie aan die de arcering vertegenwoordigt die wordt gebruikt voor de bewerking. Gebruik de bijbehorende ShaderParameter- of ShaderInput-instantie om de parameters of invoer op te geven die door de arcering wordt verwacht.
Geef vóór de uitvoering van een ShaderJob-bewerking een object op waarnaar het resultaat kan worden weggeschreven. U doet dit door het object in te stellen als de waarde van de eigenschap target
. Wanneer de arceerbewerking is voltooid, wordt het resultaat weggeschreven naar het object target
.
Als u een arceerbewerking op de achtergrond wilt uitvoeren, begint u met het aanroepen van de methode start()
. Wanneer de bewerking is voltooid, wordt het resultaat weggeschreven naar het object target
. Op dat moment verzendt de ShaderJob-instantie een complete
-gebeurtenis, waarmee aan listeners wordt gemeld dat het resultaat beschikbaar is.
Als u een arcering synchroon wilt uitvoeren (dus niet op de achtergrond), roept u de methode start()
aan en geeft u true
door als argument. De arcering wordt dan uitgevoerd in de hoofdthread en de verwerking van de code wordt onderbroken totdat de arcering is voltooid. Als dit het geval is, wordt het resultaat weggeschreven naar het object target
. Op dat moment wordt de volgende regel met code uitgevoerd door de toepassing.
Verwante API-elementen
Eigenschap | Gedefinieerd door | ||
---|---|---|---|
constructor : Object
Verwijzing naar het klasseobject of de constructorfunctie van een bepaalde objectinstantie. | Object | ||
height : int
De hoogte van de resultaatgegevens in target als dat een ByteArray of Vector.<Number>-instantie. | ShaderJob | ||
progress : Number [alleen-lezen]
De voortgang van een actieve arcering. | ShaderJob | ||
shader : Shader
De arcering die wordt gebruikt voor de bewerking. | ShaderJob | ||
target : Object
Het object waarin het resultaat van de arceringsbewerking wordt geschreven. | ShaderJob | ||
width : int
De breedte van de resultaatgegevens in target als dat een ByteArray of Vector.<Number>-instantie. | ShaderJob |
Methode | Gedefinieerd door | ||
---|---|---|---|
ShaderJob | |||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registreert een gebeurtenislistenerobject bij een object EventDispatcher, zodat de listener een melding van een gebeurtenis ontvangt. | EventDispatcher | ||
Annuleert de arceringsbewerking die op dat moment wordt uitgevoerd. | ShaderJob | ||
Verzendt een gebeurtenis naar de gebeurtenisstroom. | EventDispatcher | ||
Controleert of het object EventDispatcher listeners heeft geregistreerd voor een specifiek type gebeurtenis. | EventDispatcher | ||
Geeft aan of voor een object een opgegeven eigenschap is gedefinieerd. | Object | ||
Geeft aan of een instantie van de klasse Object zich in de prototypeketen van het object bevindt dat als parameter is opgegeven. | Object | ||
Geeft aan of de opgegeven eigenschap bestaat en kan worden opgesomd. | Object | ||
Verwijdert een listener uit het object EventDispatcher. | EventDispatcher | ||
Stelt de beschikbaarheid van een dynamische eigenschap voor lusbewerkingen in. | Object | ||
Een arceerbewerking starten in synchrone of asynchrone modus, afhankelijk van de waarde van de parameter waitForCompletion. | ShaderJob | ||
Geeft de tekenreeksweergave van dit object weer, geformatteerd volgens de locatiespecifieke conventies. | Object | ||
Retourneert een tekenreeksrepresentatie van het opgegeven object. | Object | ||
Retourneert de primitieve waarde van het opgegeven object. | Object | ||
Controleert of een gebeurtenislistener is geregistreerd bij dit object EventDispatcher of een van de voorouders voor het opgegeven type gebeurtenis. | EventDispatcher |
Gebeurtenis | Overzicht | Gedefinieerd door | ||
---|---|---|---|---|
[uitgezonden gebeurtenis] Wordt verzonden wanneer Flash Player of de AIR-toepassing de besturingssysteemfocus krijgt en actief wordt. | EventDispatcher | |||
Wordt verzonden wanneer een asynchroon uitgevoerde ShaderJob-bewerking klaar is met het verwerken van de gegevens via de arcering. | ShaderJob | |||
[uitgezonden gebeurtenis] Wordt verzonden wanneer Flash Player of de AIR-toepassing de systeemfocus verliest en inactief wordt. | EventDispatcher |
height | eigenschap |
height:int
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10, AIR 1.5 |
De hoogte van de resultaatgegevens in target
als dat een ByteArray of Vector.<Number>-instantie is. De grootte van de ByteArray of Vector.<Number>-instantie wordt zonodig vergroot en bestaande gegevens worden overschreven.
Implementatie
public function get height():int
public function set height(value:int):void
progress | eigenschap |
progress:Number
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10, AIR 1.5 |
De voortgang van een actieve arcering. Deze eigenschap is een waarde tussen 0 en 1. Nul is de aanvankelijke waarde (0% voltooid). Eén geeft aan dat de arceringsbewerking is voltooid.
Als de methode cancel()
wordt aangeroepen, wordt deze eigenschap undefined
en kan de waarde ervan pas weer op een betrouwbare manier worden gebruikt als de shaderbewerking opnieuw is gestart.
Implementatie
public function get progress():Number
shader | eigenschap |
shader:Shader
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10, AIR 1.5 |
De arcering die wordt gebruikt voor de bewerking. Invoer of een parameter die door de arcering wordt verwacht, moet worden opgegeven met de eigenschap ShaderInput of ShaderParameter van de eigenschap data
van de Shader-instantie. Invoer moet worden opgegeven met de overeenkomstige ShaderInput, ook als deze dezelfde is als het target
-object.
Voor het verwerken van een ByteArray die een lineaire matrix met gegevens bevat (in tegenstelling tot afbeeldingsgegevens), stelt u de voor de overeenkomstige ShaderInput-instantie height
in op 1 en width
op het aantal 32-bits drijvende-kommawaarden in de ByteArray. In dat geval moet de invoer in de arcering zijn gedefinieerd met het gegevenstype image1
.
Implementatie
public function get shader():Shader
public function set shader(value:Shader):void
Verwante API-elementen
target | eigenschap |
target:Object
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10, AIR 1.5 |
Het object waarin het resultaat van de arceringsbewerking wordt geschreven. Dit object moet een BitmapData, ByteArray of Vector.<Number>-instantie is.
Implementatie
public function get target():Object
public function set target(value:Object):void
width | eigenschap |
width:int
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10, AIR 1.5 |
De breedte van de resultaatgegevens in target
als dat een ByteArray of Vector.<Number>-instantie is. De grootte van de ByteArray of Vector.<Number>-instantie wordt zonodig vergroot en bestaande gegevens worden overschreven.
Implementatie
public function get width():int
public function set width(value:int):void
ShaderJob | () | Constructor |
public function ShaderJob(shader:Shader = null, target:Object = null, width:int = 0, height:int = 0)
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10, AIR 1.5 |
Parameters
shader:Shader (default = null ) — De arcering die voor de bewerking moet worden gebruikt.
| |
target:Object (default = null ) — Het object waarin het resultaat van de arceringsbewerking wordt geschreven. Dit argument moet een BitmapData, ByteArray of Vector.<Number>-instantie is.
| |
width:int (default = 0 ) — De breedte van de resultaatgegevens in target als dat een ByteArray of Vector.<Number>-instantie is. De grootte van de ByteArray of Vector.<Number>-instantie wordt zonodig vergroot en bestaande gegevens worden overschreven.
| |
height:int (default = 0 ) — De hoogte van de resultaatgegevens in target als dat een ByteArray of Vector.<Number>-instantie is. De grootte van de ByteArray of Vector.<Number>-instantie wordt zonodig vergroot en bestaande gegevens worden overschreven.
|
cancel | () | methode |
public function cancel():void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10, AIR 1.5 |
Annuleert de arceringsbewerking die op dat moment wordt uitgevoerd. Alle resulterende gegevens die al zijn berekend, worden genegeerd. De gebeurtenis complete
wordt niet verzonden.
Het meerdere keren aanroepen van cancel()
heeft geen extra effect.
start | () | methode |
public function start(waitForCompletion:Boolean = false):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10, AIR 1.5 |
Een arceerbewerking starten in de synchrone of asynchrone modus, afhankelijk van de waarde van de parameter waitForCompletion
.
In de asynchrone modus (waitForCompletion
is false
), de standaardinstelling, wordt de ShaderJob-bewerking op de achtergrond uitgevoerd. De arceerbewerking heeft geen invloed op het bijwerken van het beeldscherm of andere bewerkingen. In de asynchrone modus wordt de aanroep van start()
direct verwerkt en gaat het programma verder met de volgende regel met code. Als de asynchrone arceerbewerking is voltooid, is het resultaat direct beschikbaar en wordt de gebeurtenis complete
verzonden.
Er kan altijd maar één ShaderJob-bewerking worden uitgevoerd op de achtergrond. Arceerbewerkingen worden in een wachtrij geplaatst totdat ze worden uitgevoerd. Als u de methode start()
aanroept terwijl er een arceerbewerking wordt uitgevoerd, wordt de extra bewerking aan het einde van de wachtrij geplaatst. De bewerking wordt dan uitgevoerd op het moment dat het begin van de wachtrij is bereikt.
Als u een arceerbewerking synchroon wilt uitvoeren, roept u de methode start()
aan met de waarde true
voor de parameter waitForCompletion
(de enige parameter). De code wordt dan onderbroken op het punt waar start()
is aangeroepen, totdat de arceerbewerking is voltooid. Op dat moment is het resultaat beschikbaar en gaat de uitvoering verder met de volgende regel met code.
Als u de methode start()
aanroept, wordt de Shader-instantie in de eigenschap shader
intern gekopieerd. De arceringsbewerking gebruikt die interne kopie en geen verwijzing naar de oorspronkelijke arcering. Wijzigingen die worden aangebracht in de arcering, zoals een gewijzigde parameterwaarde, invoer of bytecode, worden niet toegepast op de gekopieerde arcering die wordt gebruikt voor de uitvoering van de arcering. Als u arceringswijzigingen wilt opnemen in de verwerking van de arcering, roept u (zonodig) de methode cancel()
aan en roept u nogmaals de methode start()
aan om de verwerking van de arcering opnieuw te starten.
Bij het uitvoeren van een arceringsbewerking wordt de waarde van het object target
niet gewijzigd. Als de bewerking is voltooid (en de gebeurtenis complete
is verzonden in de asynchrone modus), worden alle resultaten tegelijkertijd weggeschreven naar het object target
. Als het object target
een BitmapData-instantie is en de bijbehorende methode dispose()
wordt aangeroepen voordat de bewerking is voltooid, wordt de gebeurtenis complete
nog steeds verzonden in de asynchrone modus. De resultaatgegevens worden echter niet naar het BitmapData-object geschreven, omdat dat een verwijderde status heeft.
Parameters
waitForCompletion:Boolean (default = false ) — Geeft aan of de arcering moet worden uitgevoerd op de achtergrond (false , de standaardinstelling) of tijdens de uitvoering van de hoofdtoepassing (true ).
|
Gebeurtenissen
complete: — Wordt verzonden wanneer de bewerking is voltooid, als de methode start() wordt aangeroepen met de waarde true voor het argument waitForCompletion .
|
Gegenereerde uitzondering
ArgumentError — Als de eigenschap target null is of geen BitmapData, ByteArray of Vector.<Number>-instantie is.
| |
ArgumentError — Als de arcering een afbeeldingsinvoer opgeeft die niet beschikbaar is.
| |
ArgumentError — Als deze een ByteArray of Vector is.<Number>-instantie wordt gebruikt als een invoer, en de eigenschappen width en height zijn niet opgegeven voor de ShaderInput, of de opgegeven waarden komen niet in met de hoeveelheid gegevens in de invoergegevens. Zie de eigenschap ShaderInput.input voor meer informatie.
|
complete | Gebeurtenis |
flash.events.ShaderEvent
eigenschap ShaderEvent.type =
flash.events.ShaderEvent.COMPLETE
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10, AIR 1.5 |
Wordt verzonden wanneer een asynchroon uitgevoerde ShaderJob-bewerking klaar is met het verwerken van de gegevens via de arcering. Een ShaderJob-instantie wordt asynchroon uitgevoerd wanneer de methode start()
wordt aangeroepen met de waarde false
voor de parameter waitForCompletion
.
type
van een gebeurtenisobject complete
.
Deze gebeurtenis heeft de volgende eigenschappen:
Eigenschap | Waarde |
---|---|
bubbles | false |
bitmapData | Het BitmapData-object dat het resultaat bevat van de bewerking die is voltooid (of null als het doel geen BitmapData-object was). |
byteArray | Het ByteArray-object dat het resultaat bevat van de bewerking die is voltooid (of null als het doel geen ByteArray-object was). |
cancelable | false ; er is geen standaardgedrag om te annuleren. |
currentTarget | Het object dat het gebeurtenisobject actief verwerkt met een gebeurtenislistener. |
target | Het ShaderJob-object dat voltooiing rapporteert. |
vector | De vector.<Number>-instantie die het resultaat bevat van de bewerking die is voltooid (of null als het doel geen vector.<Number>-instantie was). |
Wed Jun 13 2018, 11:42 AM Z