Paket | flash.display |
Klass | public class ShaderJob |
Arv | ShaderJob EventDispatcher Object |
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
Det finns två huvudorsaker till att använda en skuggning i fristående läge:
- Bearbeta icke-bilddata: När du använder en ShaderJob-instans har du kontroll över indatavärden och över hur skuggningsresultatet används. Skuggningen kan returnera resultatet som binärdata eller nummerdata i stället för bilddata.
- Bakgrundsbearbetning: Vissa skuggningar är komplexa och tar lång tid att utföra. När en komplex skuggning körs i programmet kan det göra att andra delar av programmet blir långsammare, t.ex. användaråtgärder eller uppdatering av skärmen. Med en ShaderJob-instans kan du köra skuggningen i bakgrunden. När en skuggning utförs på det här sättet, körs skuggningsåtgärden separat från programmets huvudkörning.
Shader
-egenskapen (eller konstruktorparametern) anger Shader-instansen som representerar den skuggning som används för åtgärden. Du tillhandahåller parametrar eller inmatningar som skuggningen förväntar med hjälp av associerade ShaderParameter- eller ShaderInput-instanser.
Innan du utför en ShaderJob-åtgärd, skickar du med ett objekt där resultatet ska skrivas genom ange det som värdet för egenskapen target
. När skuggningsåtgärden slutförs, skrivs resultatet in i target
-objektet.
Börja skuggningsåtgärden i bakgrunden genom att anropa metoden start()
. När åtgärden slutförs skrivs resultatet i target
-objektet. Då skickar ShaderJob-instansen en complete
-händelse och meddelar avlyssnarna att det finns ett resultat.
Utför en skuggning synkront (det vill säga inte i bakgrunden) genom att anropa metoden start()
och skicka true
som ett argument. Skuggningen körs i huvudprogrammet och koden pausas till dess att åtgärden är slutförd. När den slutförs skrivs resultatet i target
-objektet. Då fortsätter programkörningen från nästa kodrad.
Relaterade API-element
Egenskap | Definieras med | ||
---|---|---|---|
constructor : Object
En referens till klassobjektet eller konstruktorfunktionen för en given objektinstans. | Object | ||
height : int
Höjden på alla resultatdata i målet om det är en ByteArray eller Vektor.<Number>-instans. | ShaderJob | ||
progress : Number [skrivskyddad]
Förloppet när en skuggning körs. | ShaderJob | ||
shader : Shader
Den skuggning som används för åtgärden. | ShaderJob | ||
target : Object
Det objekt i vilket resultatet av skuggningsåtgärden skrivs. | ShaderJob | ||
width : int
Bredden på alla resultatdata i målet om det är en ByteArray eller Vektor.<Number>-instans. | ShaderJob |
Metod | Definieras med | ||
---|---|---|---|
ShaderJob | |||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registrerar ett händelseavlyssnarobjekt för ett EventDispatcher-objekt så att avlyssnaren får meddelanden om händelser. | EventDispatcher | ||
Avbryter den skuggningsåtgärd som körs för tillfället. | ShaderJob | ||
Skickar en händelse till händelseflödet. | EventDispatcher | ||
Kontrollerar om EventDispatcher-objektet har några avlyssnare registrerade för en viss typ av händelse. | EventDispatcher | ||
Anger om det finns en egenskap angiven för ett objekt. | Object | ||
Anger om en instans av klassen Object finns i prototypkedjan för objektet som anges som parameter. | Object | ||
Anger om den angivna egenskapen finns och är uppräkningsbar. | Object | ||
Tar bort en avlyssnare från EventDispatcher-objektet. | EventDispatcher | ||
Anger tillgänglighet för en dynamisk egenskap för slingåtgärder. | Object | ||
Startar en skuggningsåtgärd i synkront eller asynkront läge beroende på värdet på waitForCompletion-parametern. | ShaderJob | ||
Returnerar det här objektets strängrepresentation, formaterad i enlighet med språkspecifika konventioner. | Object | ||
Returnerar det angivna objektets strängbeteckning. | Object | ||
Returnerar det angivna objektets primitiva värde. | Object | ||
Kontrollerar om en händelseavlyssnare är registrerad för det här EventDispatcher-objektet eller något av dess överordnade objekt för den angivna händelsetypen. | EventDispatcher |
Händelse | Sammanfattning | Definieras med | ||
---|---|---|---|---|
[utsändningshändelse] Skickas när Flash Player eller AIR får operativsystemfokus och blir aktivt. | EventDispatcher | |||
Skickas när en ShaderJob-instans som utförs asynkront slutför bearbetningen av data med hjälp av skuggningen. | ShaderJob | |||
[utsändningshändelse] Skickas när Flash Player eller AIR förlorar operativsystemfokus och blir inaktivt. | EventDispatcher |
height | egenskap |
height:int
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
Höjden på alla resultatdata i target
om det är en ByteArray eller Vektor.<Number>-instans. Storleken på ByteArray eller Vektor.<Number>-instansen förstoras vid behov och befintliga data skrivs över.
Implementering
public function get height():int
public function set height(value:int):void
progress | egenskap |
progress:Number
[skrivskyddad] Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
Förloppet när en skuggning körs. Den här egenskapen är ett värde mellan 0 och 1. Noll är startvärdet (0 % slutfört). Ett visar att skuggningen har slutfört åtgärden.
Om cancel()
-metoden anropas blir den här egenskapen undefined
och dess värde kan inte användas förrän skuggningsåtgärden startar igen.
Implementering
public function get progress():Number
shader | egenskap |
shader:Shader
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
Den skuggning som används för åtgärden. Alla inmatningar eller parametrar som förväntas av skuggningen måste anges med hjälp av ShaderInput- eller ShaderParameter-egenskaperna i Shader-instansens data
-egenskap. En inmatning måste anges med hjälp av motsvarande ShaderInput även om det är samma som target
-objektet.
Om du vill bearbeta en ByteArray som innehåller en linjär array med data (i motsats till bilddata) anger du den motsvarande ShaderInput-instansens height
som 1 och width
som numret för 32-bitars flyttalsvärden i ByteArray. I så fall måste inmatningen i skuggningen definieras med datatypen image1
.
Implementering
public function get shader():Shader
public function set shader(value:Shader):void
Relaterade API-element
target | egenskap |
target:Object
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
Det objekt i vilket resultatet av skuggningsåtgärden skrivs. Det här objektet måste vara en BitmapData, ByteArray eller Vektor.<Number>-instans.
Implementering
public function get target():Object
public function set target(value:Object):void
width | egenskap |
width:int
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
Bredden på alla resultatdata i target
om det är en ByteArray eller Vektor.<Number>-instans. Storleken på ByteArray eller Vektor.<Number>-instansen förstoras vid behov och befintliga data skrivs över.
Implementering
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)
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
Parametrar
shader:Shader (default = null ) — Den skuggning som ska användas för åtgärden.
| |
target:Object (default = null ) — Det objekt i vilket resultatet av skuggningsåtgärden skrivs. Det här argumentet måste vara BitmapData, ByteArray eller Vektor.<Number>-instans.
| |
width:int (default = 0 ) — Bredden på alla resultatdata i target om det är en ByteArray eller Vektor.<Number>-instans. Storleken på ByteArray eller Vektor.<Number>-instansen förstoras vid behov och befintliga data skrivs över.
| |
height:int (default = 0 ) — Höjden på alla resultatdata i target om det är en ByteArray eller Vektor.<Number>-instans. Storleken på ByteArray eller Vektor.<Number>-instansen förstoras vid behov och befintliga data skrivs över.
|
cancel | () | metod |
public function cancel():void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
Avbryter den skuggningsåtgärd som körs för tillfället. Eventuella resultatdata som redan har beräknats kasseras. Complete
-händelsen skickas inte.
Upprepade anrop till cancel()
har ingen effekt.
start | () | metod |
public function start(waitForCompletion:Boolean = false):void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
Startar en skuggningsåtgärd i synkront eller asynkront läge beroende på värdet på waitForCompletion
-parametern.
I asynkront läge (när waitForCompletion
är false
), vilket är standarden, körs ShaderJob-utförandet i bakgrunden. Skuggningsåtgärden påverkar inte svarstiden för visningen eller andra åtgärder. I asynkront läge returnerar start()
-anropet omedelbart, och programmet fortsätter med nästa kodrad. När den asynkrona skuggningsåtgärden slutförs, blir resultatet tillgängligt och complete
-händelsen skickas.
Endast en bakgrunds-ShaderJob-åtgärd körs åt gången. Skuggningsåtgärder placeras i kö tills de kan köras. Om du anropar start()
-metoden medan en skuggningsåtgärd körs läggs den extra åtgärden till i slutet av kön. Senare, när det är åtgärdens tur, utförs den.
Utför en skuggningsåtgärd i synkront läge genom att anropa start()
med värdet true
som waitForCompletion
-parameter (den enda parametern). Koden pausas vid den punkt där start()
anropas till dess att skuggningsåtgärden slutförs. Vid det tillfället blir resultatet tillgängligt och körningen fortsätter med nästa kodrad.
När du anropar start()
-metoden kopieras Shader-instansen i shader
-egenskapen internt. Skuggningsåtgärden använder den interna kopian och inte en referens till den ursprungliga skuggningen. Ändringar som görs i skuggningen, t.ex. ändring av parametervärde, inmatning eller bytekod, används inte i den kopierade skuggning som används för skuggningsåtgärden. Om du vill ta med skuggningsändringarna i skuggningsbearbetningen anropar du cancel()
-metoden (om så behövs) och anropar sedan start()
-metoden igen och startar om skuggningsbearbetningen.
När en skuggningsåtgärd körs ändras inte värdet för target
-objektet. När åtgärden slutförs (och complete
-händelsen skickas i asynkront läge) skrivs hela resultatet till target
-objektet på en gång. Om target
-objektet är en BitmapData-instans och dess dispose()
-metod har anropats innan åtgärden slutförs, skickas ändå complete
-händelsen i asynkront läge. Resultatinformationen skrivs dock inte till BitmapData-objektet eftersom detta är i ett borttagningsläge.
Parametrar
waitForCompletion:Boolean (default = false ) — Anger om skuggningen ska köras i bakgrunden (false , standard) eller i körningen av huvudprogrammet (true ).
|
Händelser
complete: — Skickas när åtgärden avslutas om start() -metoden anropas med waitForCompletion -argumentet satt till true .
|
Utlöser
ArgumentError — När target -egenskapen är null eller inte är en BitmapData, ByteArray eller Vector.<Number>-instans.
| |
ArgumentError — När skuggningen anger en bildinmatning som inte är tillhandahållen.
| |
ArgumentError — När en ByteArray eller Vektor.<Number>-instans används som en inmatning och egenskaperna width och height är inte angivna för ShaderInput, eller också överensstämmer inte de angivna värdena med mängden data i inmatningsobjektet. Mer information finns under ShaderInput.input -egenskapen.
|
complete | Händelse |
flash.events.ShaderEvent
egenskap ShaderEvent.type =
flash.events.ShaderEvent.COMPLETE
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
Skickas när en ShaderJob-instans som utförs asynkront slutför bearbetningen av data med hjälp av skuggningen. En ShaderJob-åtgärd körs asynkront när start()
-metoden anropas med värdet false
som waitForCompletion
-parameter.
complete
-händelseobjekts type
-egenskap.
Den här händelsen har följande egenskaper:
Egenskap | Värde |
---|---|
bubbles | false |
bitmapData | BitmapData-objektet som innehåller resultatet av den slutförda åtgärden (eller null om målet inte var ett BitmapData-objekt). |
byteArray | ByteArray-objektet som innehåller resultatet av den slutförda åtgärden (eller null om målet inte var ett ByteArray-objekt). |
cancelable | false ; det finns inget standardbeteende att avbryta. |
currentTarget | Det objekt som aktivt behandlar event-objektet med en händelseavlyssnare. |
target | Slutförande av ShaderJob-objektrapport. |
vektor | Vektorn.<Number>-instansen som innehåller resultatet av den slutförda åtgärden (eller null om målet inte var en Vektor).<Number>-instans). |
Tue Jun 12 2018, 01:40 PM Z