ActionScript® 3.0 Referenzhandbuch für die Adobe® Flash®-Plattform
Home  |  Liste der Pakete und Klassen ausblenden |  Pakete  |  Klassen  |  Neue Funktionen  |  Stichwortverzeichnis  |  Anhänge  |  Warum auf Englisch?
Filter: Daten werden vom Server abgerufen...
Daten werden vom Server abgerufen...
flash.display 

ShaderJob  - AS3

Paketflash.display
Klassepublic class ShaderJob
VererbungShaderJob Inheritance EventDispatcher Inheritance Object

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 10, AIR 1.5

Eine ShaderJob-Instanz wird für die Ausführung eines Shadervorgangs im eigenständigen Modus verwendet. Der Shadervorgang wird ausgeführt und gibt die Ergebnisdaten zurück. Der Entwickler entscheidet, wie er das Ergebnis verwendet.

Es gibt zwei Hauptgründe für die Verwendung des Shaders im eigenständigen Modus:

  • Verarbeitung von Nicht-Bilddaten: Durch die ShaderJob-Instanz können Sie die Eingabewerte bestimmen und entscheiden, wie die Shaderergebnisse verwendet werden. Der Shader kann das Ergebnis anstatt in Bilddaten als Binärdaten oder Zahlendaten zurückgeben.
  • Verarbeitung im Hintergrund: Manche Shader sind komplex und ihre Ausführung erfordert einige Zeit. Die Ausführung eines komplexen Shaders in der Hauptausführung einer Anwendung kann andere Teile der Anwendung, etwa Benutzerinteraktionen oder die Aktualisierung des Bildschirms, beträchtlich verlangsamen. Mit der ShaderJob-Instanz können Sie den Shader im Hintergrund ausführen. Auf diese Weise läuft der Shadervorgang unabhängig von der Hautpausführung der Anwendung ab.

Die shader-Eigenschaft (oder der constructor-Parameter) gibt die Shader-Instanz an, die den für diesen Vorgang verwendeten Shader darstellt. Parameter oder Eingaben, die der Shader benötigt, stellen Sie mithilfe der verknüpften ShaderParameter- oder ShaderInput-Instanzen bereit.

Vor Ausführung des ShaderJob-Vorgangs stellen Sie ein Objekt bereit, in das das Ergebnis geschrieben wird. Dazu setzen Sie das Objekt als Wert für die target-Eigenschaft. Bei Abschluss des Shadervorgangs wird das Ergebnis in das target-Objekt geschrieben.

Zum Starten eines Shadervorgangs im Hintergrund rufen Sie die start()-Methode auf. Bei Abschluss des Shadervorgangs wird das Ergebnis in das target-Objekt geschrieben. Dabei löst die ShaderJob-Instanz ein complete-Ereignis aus, das Listener informiert, dass das Ergebnis bereitsteht.

Um einen Shader synchron auszuführen (also nicht im Hintergrund), führen Sie die start()-Methode aus und übergeben true als Argument. Der Shader läuft im Hauptausführungs-Thread und Ihr Code wird angehalten, bis der Vorgang abgeschlossen ist. Am Ende wird das Ergebnis in das target-Objekt geschrieben. Dann wird die Ausführung der Anwendung bei der nächsten Codezeile fortgesetzt.

Verwandte API-Elemente



Öffentliche Eigenschaften
 EigenschaftDefiniert von
 Inheritedconstructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz.
Object
  height : int
Die Höhe der Ergebnisdaten im target, wenn es sich dabei um eine ByteArray- oder Vector.<Number>-Instanz handelt.
ShaderJob
  progress : Number
[schreibgeschützt] Der Fortschritt eines Shaders, der ausgeführt wird.
ShaderJob
  shader : Shader
Der für den Vorgang verwendete Shader.
ShaderJob
  target : Object
Das Objekt, in das das Ergebnis des Shadervorgangs geschrieben wird.
ShaderJob
  width : int
Die Breite der Ergebnisdaten im „target“, wenn es sich beim Ziel um eine ByteArray- oder Vector.<Number>-Instanz handelt.
ShaderJob
Öffentliche Methoden
 MethodeDefiniert von
  
ShaderJob(shader:Shader = null, target:Object = null, width:int = 0, height:int = 0)
ShaderJob
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registriert ein Ereignis-Listener-Objekt bei einem EventDispatcher-Objekt, sodass der Listener über ein Ereignis benachrichtigt wird.
EventDispatcher
  
Bricht den aktuell laufenden Shadervorgang ab.
ShaderJob
 Inherited
Sendet ein Ereignis in den Ereignisablauf.
EventDispatcher
 Inherited
Überprüft, ob das EventDispatcher-Objekt Listener für einen bestimmten Ereignistyp registriert hat.
EventDispatcher
 Inherited
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde.
Object
 Inherited
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde.
Object
 Inherited
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Entfernt einen Listener aus dem EventDispatcher-Objekt.
EventDispatcher
 Inherited
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest.
Object
  
start(waitForCompletion:Boolean = false):void
Startet einen Shadervorgang im synchronen oder asynchronen Modus, entsprechend dem Wert des waitForCompletion-Parameters.
ShaderJob
 Inherited
Gibt die Stringdarstellung dieses Objekts zurück, formatiert entsprechend den Konventionen des Gebietsschemas.
Object
 Inherited
Gibt das angegebene Objekt als String zurück.
Object
 Inherited
Gibt den Grundwert des angegebenen Objekts zurück.
Object
 Inherited
Überprüft, ob bei diesem EventDispatcher-Objekt oder bei einem seiner Vorgänger ein Ereignis-Listener für einen bestimmten Ereignistyp registriert ist.
EventDispatcher
Ereignisse
 Ereignis Übersicht Definiert von
 Inherited[broadcast event] Wird ausgelöst, wenn Flash Player oder eine AIR-Anwendung den Betriebssystemfokus erhält und aktiv wird.EventDispatcher
  Wird ausgelöst, wenn ein asynchron ausgeführter ShaderJob die Datenverarbeitung mithilfe des Shaders beendet.ShaderJob
 Inherited[broadcast event] Wird ausgelöst, wenn Flash Player- oder die AIR-Anwendung den Fokus verliert und inaktiv wird.EventDispatcher
Eigenschaftendetails

height

Eigenschaft
height:int

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 10, AIR 1.5

Die Höhe der Ergebnisdaten im target, wenn es sich dabei um eine ByteArray- oder Vector.<Number>-Instanz handelt. Die Größe der ByteArray- oder Vector.<Number>-Instanz wird bei Bedarf erhöht und bestehende Daten werden überschrieben.



Implementierung
    public function get height():int
    public function set height(value:int):void

progress

Eigenschaft 
progress:Number  [schreibgeschützt]

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 10, AIR 1.5

Der Fortschritt eines Shaders, der ausgeführt wird. Diese Eigenschaft ist ein Wert zwischen 0 und 1. Null ist der Ausgangswert (0 % abgeschlossen). Eins gibt an, dass der Shadervorgang abgeschlossen ist.

Wenn die cancel()-Methode aufgerufen wird, erhält diese Eigenschaft den Wert undefined und ihr Wert ist unzuverlässig, bis der Shadervorgang erneut startet.



Implementierung
    public function get progress():Number

shader

Eigenschaft 
shader:Shader

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 10, AIR 1.5

Der für den Vorgang verwendete Shader. Eingaben oder Parameter, die der Shader benötigt, müssen mithilfe der ShaderInput- oder ShaderParameter-Eigenschaft der data-Eigenschaft der Shader-Instanz angegeben werden. Eine Eingabe muss mit dem entsprechenden ShaderInput bereitgestellt werden, auch, wenn es dasselbe Objekt wie das target-Objekt ist.

Um ein ByteArray zu verarbeiten, das ein lineares Daten-Array (im Gegensatz zu Bilddaten) enthält, setzen Sie für die entsprechende ShaderInput-Instanz height auf 1 und width auf die Wertzahl der 32-Bit-Gleitkommazahl im ByteArray. In diesem Fall muss die Shadereingabe mithilfe des image1-Datentyps definiert werden.



Implementierung
    public function get shader():Shader
    public function set shader(value:Shader):void

Verwandte API-Elemente

target

Eigenschaft 
target:Object

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 10, AIR 1.5

Das Objekt, in das das Ergebnis des Shadervorgangs geschrieben wird. Dieses Objekt muss eine BitmapData-, ByteArray- oder Vector.<Number>-Instanz sein.



Implementierung
    public function get target():Object
    public function set target(value:Object):void

width

Eigenschaft 
width:int

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 10, AIR 1.5

Die Breite der Ergebnisdaten im target, wenn es sich dabei um eine ByteArray- oder Vector.<Number>-Instanz handelt. Die Größe der ByteArray- oder Vector.<Number>-Instanz wird bei Bedarf erhöht und bestehende Daten werden überschrieben.



Implementierung
    public function get width():int
    public function set width(value:int):void
Konstruktordetails

ShaderJob

()Konstruktor
public function ShaderJob(shader:Shader = null, target:Object = null, width:int = 0, height:int = 0)

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 10, AIR 1.5

Parameter
shader:Shader (default = null) — Der für den Vorgang verwendete Shader.
 
target:Object (default = null) — Das Objekt, in das das Ergebnis des Shadervorgangs geschrieben wird. Dieses Argument muss eine BitmapData-, ByteArray- oder Vector.<Number>-Instanz sein.
 
width:int (default = 0) — Die Breite der Ergebnisdaten im target, wenn es sich dabei um eine ByteArray- oder Vector.<Number>-Instanz handelt. Die Größe der ByteArray- oder Vector.<Number>-Instanz wird bei Bedarf erhöht und bestehende Daten werden überschrieben.
 
height:int (default = 0) — Die Höhe der Ergebnisdaten im target, wenn es sich dabei um eine ByteArray- oder Vector.<Number>-Instanz handelt. Die Größe der ByteArray- oder Vector.<Number>-Instanz wird bei Bedarf erhöht und bestehende Daten werden überschrieben.
Methodendetails

cancel

()Methode
public function cancel():void

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 10, AIR 1.5

Bricht den aktuell laufenden Shadervorgang ab. Bereits berechnete Ergebnisdaten werden dabei gelöscht. Das complete-Ereignis wird nicht ausgelöst.

Mehrfaches Aufrufen von cancel() hat keine Auswirkungen.

start

()Methode 
public function start(waitForCompletion:Boolean = false):void

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 10, AIR 1.5

Startet einen Shadervorgang im synchronen oder asynchronen Modus, entsprechend dem Wert des waitForCompletion-Parameters.

Im asynchronen Modus (wenn waitForCompletion den Wert false hat) wird der ShaderJob im Hintergrund ausgeführt. Dies ist der Standardmodus. Der Shadervorgang hat keine Auswirkungen auf die Reaktionszeit der Anzeige oder andere Vorgänge. Im asynchronen Modus wird der start()-Aufruf sofort zurückgegeben und das Programm setzt mit der nächsten Codezeile fort. Nach Abschluss eines asynchronen Shadervorgangs steht das Ergebnis bereit und das complete-Ereignis wird ausgelöst.

Es kann jeweils nur ein ShaderJob-Vorgang im Hintergrund ausgeführt werden. Shadervorgänge werden bis zu ihrer Ausführung in eine Warteschlange gereiht. Wird während der Ausführung eines Shadervorgangs die start()-Methode aufgerufen, so wird der neue Vorgang an das Ende der Warteschlange gereiht. Er wird ausgeführt, wenn er an der Reihe ist.

Ein Shadervorgang wird synchron ausgeführt, wenn die start()-Methode aufgerufen wird und sie den Wert true für den waitForCompletion-Parameter (den einzigen Parameter) aufweist. Ihr Code wird vom Zeitpunkt, zu dem start() aufgerufen wird, bis zum Abschluss des Shadervorgangs angehalten. Dann steht das Ergebnis zur Verfügung und die Ausführung wird bei der nächsten Codezeile fortgesetzt.

Wenn Sie die start()-Methode aufrufen, wird die Shader-Instanz in der shader-Eigenschaft intern kopiert. Für den Shadervorgang wird statt eines Verweises auf den ursprünglichen Shader die interne Kopie verwendet. Änderungen am Shader (beispielsweise an Parameterwerten, Eingabe oder Bytecode) werden nicht auf die für den Shadervorgang verwendete Shaderkopie angewendet. Um Änderungen am Shader in den Shadervorgang einzubeziehen, rufen Sie, falls erforderlich, die cancel()-Methode auf und dann nochmals die start()-Methode, um den Shadervorgang neu zu starten.

Während der Ausführung eines Shadervorgangs wird der Wert des target-Objekts nicht geändert. Wenn der Vorgang abgeschlossen (und im asynchronen Modus das complete-Ereignis ausgelöst) wird, wird das Gesamtergebnis direkt in das target-Objekt geschrieben. Wenn es sich beim target-Objekt um eine BitmapData-Instanz handelt und die zugehörige dispose()-Methode vor Abschluss des Vorgangs aufgerufen wird, wird das complete-Ereignis dennoch im asynchronen Modus ausgelöst. Die Ergebnisdaten werden jedoch nicht in das BitmapData-Objekt geschrieben, da es entfernt wurde.

Parameter

waitForCompletion:Boolean (default = false) — Legt fest, ob der Shader im Hintergrund (false, Standardwert) oder in der Hauptausführung des Programms (true) ausgeführt wird.


Ereignisse
complete:ShaderEvent — Wird beim Abschluss eines Vorgangs aufgerufen, wenn die start()-Methode mit einem waitForCompletion-Argument gleich true aufgerufen wurde.

Auslöser
ArgumentError — Wenn die target-Eigenschaft null oder keine BitmapData-, ByteArray- oder Vector.<Number>-Instanz ist.
 
ArgumentError — Wenn der Shader eine Bildeingabe festlegt, die nicht vorhanden ist.
 
ArgumentError — Wenn eine ByteArray- oder Vector.<Number>-Instanz als Eingabe verwendet wird und die width- und height-Eigenschaft für ShaderInput nicht festgelegt ist oder die festgelegten Werte nicht mit der Datenmenge im Eingabeobjekt übereinstimmen. Weitere Informationen finden Sie im Abschnitt zur ShaderInput.input-Eigenschaft.
Ereignisdetails

complete

Ereignis
Ereignisobjekttyp: flash.events.ShaderEvent
Eigenschaft ShaderEvent.type = flash.events.ShaderEvent.COMPLETE

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 10, AIR 1.5

Wird ausgelöst, wenn ein asynchron ausgeführter ShaderJob die Datenverarbeitung mithilfe des Shaders beendet. Eine ShaderJob-Instanz wird asynchron ausgeführt, wenn die start()-Methode mit dem Wert false für den waitForCompletion-Parameter aufgerufen wird.

Definiert den Wert der Eigenschaft type eines complete-Ereignisobjekts.

Dieses Ereignis verfügt über die folgenden Eigenschaften:

EigenschaftWert
bubblesfalse
bitmapDataDas BitmapData-Objekt, das das Ergebnis des beendeten Vorgangs enthält (oder null, wenn das Ziel kein BitmapData-Objekt war).
byteArrayDas ByteArray-Objekt, das das Ergebnis des beendeten Vorgangs enthält (oder null, wenn das Ziel kein ByteArray-Objekt war).
cancelablefalse. Es gibt kein Standardverhalten, das abgebrochen werden kann.
currentTargetDas Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet.
targetDas ShaderJob-Objekt, dessen Fertigstellung protokolliert wird.
vectorDie Vector.<Number>-Instanz, die das Ergebnis des beendeten Vorgangs enthält (oder null, wenn das Ziel keine Vector.<Number>-Instanz) war.




[ X ]Warum auf Englisch?
Inhalt des ActionScript 3.0-Referenzhandbuchs wird in englischer Sprache angezeigt

Nicht alle Teile des ActionScript 3.0-Referenzhandbuchs wurden in alle Sprachen übersetzt. Wenn der Text zu einem Sprachelement nicht übersetzt wurde, wird er auf Englisch angezeigt. Zum Beispiel wurden die Informationen zur ga.controls.HelpBox-Klasse nicht in andere Sprachen übersetzt. In der deutschen Version des Referenzhandbuchs erscheint der Abschnitt zur ga.controls.HelpBox-Klasse deshalb auf Englisch.