Paket | flash.display |
Klasse | public class ShaderJob |
Vererbung | ShaderJob EventDispatcher Object |
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5 |
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
Eigenschaft | Definiert von | ||
---|---|---|---|
constructor : 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 |
Methode | Definiert von | ||
---|---|---|---|
ShaderJob | |||
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 | ||
Sendet ein Ereignis in den Ereignisablauf. | EventDispatcher | ||
Überprüft, ob das EventDispatcher-Objekt Listener für einen bestimmten Ereignistyp registriert hat. | EventDispatcher | ||
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde. | Object | ||
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde. | Object | ||
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann. | Object | ||
Entfernt einen Listener aus dem EventDispatcher-Objekt. | EventDispatcher | ||
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest. | Object | ||
Startet einen Shadervorgang im synchronen oder asynchronen Modus, entsprechend dem Wert des waitForCompletion-Parameters. | ShaderJob | ||
Gibt die Stringdarstellung dieses Objekts zurück, formatiert entsprechend den Konventionen des Gebietsschemas. | Object | ||
Gibt das angegebene Objekt als String zurück. | Object | ||
Gibt den Grundwert des angegebenen Objekts zurück. | Object | ||
Überprüft, ob bei diesem EventDispatcher-Objekt oder bei einem seiner Vorgänger ein Ereignis-Listener für einen bestimmten Ereignistyp registriert ist. | EventDispatcher |
Ereignis | Übersicht | Definiert von | ||
---|---|---|---|---|
[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 | |||
[broadcast event] Wird ausgelöst, wenn Flash Player- oder die AIR-Anwendung den Fokus verliert und inaktiv wird. | EventDispatcher |
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
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.
|
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: — 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.
|
complete | Ereignis |
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.
type
eines complete
-Ereignisobjekts.
Dieses Ereignis verfügt über die folgenden Eigenschaften:
Eigenschaft | Wert |
---|---|
bubbles | false |
bitmapData | Das BitmapData-Objekt, das das Ergebnis des beendeten Vorgangs enthält (oder null , wenn das Ziel kein BitmapData-Objekt war). |
byteArray | Das ByteArray-Objekt, das das Ergebnis des beendeten Vorgangs enthält (oder null , wenn das Ziel kein ByteArray-Objekt war). |
cancelable | false . Es gibt kein Standardverhalten, das abgebrochen werden kann. |
currentTarget | Das Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet. |
target | Das ShaderJob-Objekt, dessen Fertigstellung protokolliert wird. |
vector | Die Vector.<Number>-Instanz, die das Ergebnis des beendeten Vorgangs enthält (oder null , wenn das Ziel keine Vector.<Number>-Instanz) war. |
Tue Jun 12 2018, 10:04 AM Z