ActionScript® 3.0 — dokumentacja dla platformy Adobe® Flash®
Strona główna  |  Ukryj listę pakietów i klas |  Pakiety  |  Klasy  |  Nowości  |  Indeks  |  Dodatki  |  Dlaczego język angielski?
Filtry: Pobieranie danych z serwera...
Pobieranie danych z serwera...
flash.display 

ShaderJob  - AS3

Pakietflash.display
Klasapublic class ShaderJob
DziedziczenieShaderJob Inheritance EventDispatcher Inheritance Object

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5

Instancja ShaderJob służy do wykonania operacji cieniowania w trybie autonomicznym. Operacja cieniowania jest wykonywana i zwracane są wynikowe dane. O tym, w jaki sposób dane wynikowe zostaną użyte, decyduje programista.

Istnieją dwa podstawowe powody używania modułu cieniującego do wykonywania operacji w trybie autonomicznym:

  • Przetwarzanie danych niegraficznych: Korzystając z instancji ShaderJob programista ma kontrolę nad wartościami wejściowymi oraz nad sposobem użycia wynikowych danych modułu cieniującego. Moduł cieniujący może zwrócić wynik w postaci danych binarnych lub numerycznych zamiast danych obrazu.
  • Przetwarzanie w tle: Niektóre moduły cieniujące są złożone i do ich wykonania wymagana jest znaczna ilość czasu. Wykonywanie złożonych operacji modułów cieniujących w głównym wątku wykonywania aplikacji może spowalniać wykonywanie innych operacji w aplikacji, takich jak interakcja z użytkownikiem lub aktualizowanie obrazu na ekranie. Za pomocą instancji ShaderJob operacje modułu cieniowania można wykonać w tle. Jeśli moduł cieniujący uruchomiony zostanie w ten sposób, operacje modułu cieniującego wykonywane są poza głównym wątkiem wykonywania aplikacji.

Właściwość shader (lub parametr konstruktora) określa instancję modułu cieniującego reprezentującą moduł używany dla operacji. Należy wprowadzić dowolny parametr lub dane wejściowe, jakich oczekuje moduł cieniujący, korzystając ze skojarzonej instancji ShaderParameter lub ShaderInput.

Przed wykonaniem operacji ShaderJob należy dostarczyć obiekt, w którym zapisany został wynik, ustawiając go jako wartość we właściwości target. Po zakończeniu operacji modułu cieniującego wynik zostanie zapisany do obiektu target.

Aby rozpocząć operację modułu cieniującego w tle, należy wywołać metodę start(). Po zakończeniu operacji wynik zostanie zapisany do obiektu target. Następnie instancja ShaderJob wywołuje zdarzenie complete, które informuje detektory o dostępności wyników.

Aby uruchomić moduł cieniujący synchronicznie (tzn. nie uruchamiając go w tle), należy wywołać metodę start() i przekazać jako argument wartość true. Moduł cieniujący uruchamiany jest w głównym wykonawczym, a wykonywanie kodu programisty jest wstrzymywane do momentu zakończenia operacji. Po zakończeniu wyniki zostaną zapisane do obiektu target. Następnie aplikacja kontynuuje działanie, rozpoczynając od kolejnego wiersza kodu.

Powiązane elementy interfejsu API



Właściwości publiczne
 WłaściwośćZdefiniowane przez
 Inheritedconstructor : Object
Odwołanie do obiektu klasy lub funkcji konstruktora, dotyczące danej instancji obiektu.
Object
  height : int
Wysokość danych wynikowych w obiekcie target, jeśli jest to ByteArray lub Vector.Wystąpienie klasy <Number>
ShaderJob
  progress : Number
[tylko do odczytu] Postęp działania modułu cieniującego.
ShaderJob
  shader : Shader
Moduł cieniujący, jaki jest używany dla operacji.
ShaderJob
  target : Object
Obiekt, do którego zapisywany jest wynik operacji modułu cieniującego.
ShaderJob
  width : int
Szerokość danych wynikowych w obiekcie target, jeśli jest to ByteArray lub Vector.Instancja <Number>
ShaderJob
Metody publiczne
 MetodaZdefiniowane przez
  
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
Rejestruje obiekt detektora zdarzeń w obiekcie EventDispatcher, dzięki czemu detektor będzie otrzymywał powiadomienia o zdarzeniu.
EventDispatcher
  
Anuluje aktualnie działającą operację modułu cieniującego.
ShaderJob
 Inherited
Wywołuje zdarzenie, tj. kieruje je do przepływu zdarzeń.
EventDispatcher
 Inherited
Sprawdza, czy obiekt EventDispatcher zawiera jakiekolwiek detektory zarejestrowane dla konkretnego typu zdarzeń.
EventDispatcher
 Inherited
Wskazuje, czy dla obiektu zdefiniowano określoną właściwość.
Object
 Inherited
Wskazuje, czy instancja klasy Object należy do łańcucha prototypów obiektu określonego jako parametr.
Object
 Inherited
Wskazuje, czy określona właściwość istnieje i jest przeliczalna.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Usuwa detektor z obiektu EventDispatcher.
EventDispatcher
 Inherited
Ustawia dostępność właściwości dynamicznej używanej w pętlach.
Object
  
start(waitForCompletion:Boolean = false):void
Rozpoczyna operację modułu cieniującego w trybie synchronicznym lub asynchronicznym zgodnie z wartością parametru waitForCompletion.
ShaderJob
 Inherited
Zwraca ciąg reprezentujący obiekt — sformatowany zgodnie z konwencjami właściwymi dla ustawień regionalnych.
Object
 Inherited
Zwraca ciąg reprezentujący określony obiekt.
Object
 Inherited
Zwraca pierwotną wartość dla określonego obiektu.
Object
 Inherited
Sprawdza, czy detektor zdarzeń określonego typu jest zarejestrowany w tym obiekcie EventDispatcher lub jego elementach macierzystych.
EventDispatcher
Zdarzenia
 Zdarzenie Podsumowanie Zdefiniowane przez
 Inherited[zdarzenie broadcast] Wywoływane, gdy program Flash Player lub aplikacja środowiska wykonawczego AIR uzyskuje fokus w systemie operacyjnym i przechodzi w stan aktywny.EventDispatcher
  Wywoływane, gdy instancja ShaderJob, która wykonywana jest w sposób asynchroniczny, zakończy przetwarzanie danych z użyciem modułu cieniującego.ShaderJob
 Inherited[zdarzenie broadcast] Wywoływane, gdy program Flash Player lub aplikacja AIR traci fokus w systemie operacyjnym i przechodzi w stan nieaktywny.EventDispatcher
Szczegół właściwości

height

właściwość
height:int

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5

Wysokość danych wynikowych w obiekcie target, jeśli jest to ByteArray lub Vector.Instancja <Number>. Wielkość argumentu ByteArray lub Vector.Instancja <Number> może zostać powiększona w razie potrzeby, a istniejące dane są zastępowane.



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

progress

właściwość 
progress:Number  [tylko do odczytu]

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5

Postęp działania modułu cieniującego. Ta właściwość jest wartością z zakresu od 0 do 1. Zero jest wartością początkową (ukończenie: 0%). Jeden oznacza, że moduł cieniujący zakończył operację.

Jeśli zostanie wywołana metoda cancel(), ta właściwość będzie miała wartość undefined, a z jej wartości nie można będzie korzystać niezawodnie do czasu ponownego uruchomienia operacji modułu cieniującego.



Implementacja
    public function get progress():Number

shader

właściwość 
shader:Shader

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5

Moduł cieniujący, jaki jest używany dla operacji. Wszelkie dane wejściowe lub parametry, których oczekuje moduł cieniujący, należy wprowadzić za pomocą właściwości ShaderInput lub ShaderParameter, która należy do właściwości data instancji modułu cieniującego. Dane wejściowe należy wprowadzić za pomocą odpowiedniego obiektu ShaderInput, nawet jeśli jest on taki sam, jak obiekt target.

W celu przetworzenia tablicy ByteArray zawierającej tablicę liniową danych (w przeciwieństwie do danych obrazu) należy ustawić 1 dla wartości height odpowiedniej instancji ShaderInput, a dla width należy ustawić liczbę zmiennoprzecinkowych wartości 32-bitowych w tablicy ByteArray. W takim przypadku dane wejściowe modułu cieniującego należy zdefiniować z typem danych image1.



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

Powiązane elementy interfejsu API

target

właściwość 
target:Object

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5

Obiekt, do którego zapisywany jest wynik operacji modułu cieniującego. Ten obiekt musi być jednym z następujących: BitmapData, ByteArray lub Vector.Instancja <Number>.



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

width

właściwość 
width:int

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5

Szerokość danych wynikowych w obiekcie target, jeśli jest to ByteArray lub Vector.Instancja <Number>. Wielkość argumentu ByteArray lub Vector.Instancja <Number> może zostać powiększona w razie potrzeby, a istniejące dane są zastępowane.



Implementacja
    public function get width():int
    public function set width(value:int):void
Konstruktor Szczegół

ShaderJob

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

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5

Parametry
shader:Shader (default = null) — Moduł cieniujący, jaki ma być używany dla operacji.
 
target:Object (default = null) — Obiekt, do którego zapisywany jest wynik operacji modułu cieniującego. Ten argument musi być jednym z następujących: BitmapData, ByteArray lub Vector.Wystąpienie klasy <Number>.
 
width:int (default = 0) — Szerokość danych wynikowych w obiekcie target, jeśli jest to ByteArray lub Vector.Instancja <Number>. Wielkość argumentu ByteArray lub Vector.Instancja <Number> może zostać powiększona w razie potrzeby, a istniejące dane są zastępowane.
 
height:int (default = 0) — Wysokość danych wynikowych w obiekcie target, jeśli jest to ByteArray lub Vector.Instancja <Number>. Wielkość argumentu ByteArray lub Vector.Instancja <Number> może zostać powiększona w razie potrzeby, a istniejące dane są zastępowane.
Szczegół metody

cancel

()metoda
public function cancel():void

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5

Anuluje aktualnie działającą operację modułu cieniującego. Wszelkie dane wynikowe, które zostały już obliczone, są usuwane. Zdarzenie complete nie jest wywoływane.

Wielokrotne wywoływanie metody cancel() nie ma żadnych dodatkowych skutków.

start

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

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5

Rozpoczyna operację modułu cieniującego w trybie synchronicznym lub asynchronicznym zgodnie z wartością parametru waitForCompletion.

W trybie asynchronicznym (gdy parametr waitForCompletion ma wartość false), który jest trybem domyślnym, wykonanie ShaderJob uruchamiane jest w tle. Operacja modułu cieniującego nie wpływa na wydajność reagowania monitora ani wykonywania innych operacji. W trybie asynchronicznym wywołanie metody start() powoduje natychmiastowy powrót i kontynuację programu w kolejnym wierszu kodu. Po zakończeniu asynchronicznej operacji modułu cieniującego wynik jest udostępniany i wywoływane jest zdarzenie complete.

Jednocześnie w tle może być wykonywana tylko jedna operacja ShaderJob. Operacje modułu cieniującego są przetrzymywane w kolejce do czasu ich wykonania. W przypadku wywołania metody start() podczas wykonywania operacji modułu cieniującego, dodatkowa operacja jest umieszczana na końcu kolejki. Operacja zostanie wykonywana, gdy nadejdzie jej kolej.

Aby wykonać operację modułu cieniującego w trybie synchronicznym, należy wywołać metodę start() z wartością true dla parametru waitForCompletion (jedynego parametru). Kod zostanie wstrzymany w miejscu wywołania metody start() do momentu zakończenia operacji modułu cieniującego. W tym miejscu wynik jest dostępny, a wykonanie kontynuowane jest w kolejnym wierszu kodu.

Po wywołaniu metody start() instancja modułu cieniującego we właściwości shader zostanie skopiowana wewnętrznie. Podczas operacji modułu cieniującego używana jest kopia wewnętrzna, a nie odwołanie do oryginalnego modułu cieniującego. Wszelkie zmiany modułu cieniującego, takie jak zmiana wartości parametru, obiektu wejściowego lub kodu bajtowego, nie są stosowane do modułu skopiowanego, który jest używany podczas przetwarzania modułu cieniującego. W celu uwzględnienia zmian modułu cieniującego w przetwarzaniu tego modułu należy wywołać metodę cancel() (w razie potrzeby), a następnie ponownie wywołać metodę start() w celu ponownego przetwarzania modułu cieniującego.

Podczas wykonywania operacji modułu cieniującego wartość obiektu target nie jest zmieniana. Po zakończeniu operacji (i wywołaniu zdarzenia complete w trybie asynchronicznym) cały wynik jest jednorazowo zapisywany w obiekcie target. Jeśli obiekt target jest instancją BitmapData, a jego metoda dispose() zostanie wywołana przed zakończeniem operacji, zdarzenie complete będzie nadal wywoływane w trybie asynchronicznym. Jednak dane wynikowe nie zostaną zapisane do obiektu BitmapData, ponieważ obiekt znajduje się w stanie usuwania.

Parametry

waitForCompletion:Boolean (default = false) — Określa, czy moduł cieniujący uruchamiany jest w tle (wartość false — domyślnie), czy w głównym wątku wykonania (wartość true).


Zdarzenia
complete:ShaderEvent — Wywoływane po zakończeniu operacji, jeśli metoda start() zostanie wywołana z argumentem waitForCompletion równym true.

Zgłasza
ArgumentError — Gdy właściwość target ma wartość lub jest inna niż BitmapData, ByteArray albo Vector.Wystąpienie klasy <Number>.
 
ArgumentError — Gdy moduł cieniujący określa obraz wejściowy, które nie został udostępniony.
 
ArgumentError — W przypadku filtrów ByteArray lub Vector.Instancja <Number> jest używana jako obiekt wejściowy, a właściwości width i height nie zostały określone dla ShaderInput, lub określone wartości nie są zgodne z ilością danych w obiekcie wejściowym. Więcej informacji można znaleźć w opisie właściwości ShaderInput.input.
Szczegół zdarzenia

complete

Zdarzenie
Typ obiektu zdarzenia: flash.events.ShaderEvent
właściwość ShaderEvent.type = flash.events.ShaderEvent.COMPLETE

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5

Wywoływane, gdy instancja ShaderJob, która wykonywana jest w sposób asynchroniczny, zakończy przetwarzanie danych z użyciem modułu cieniującego. Instancja ShaderJob wykonywana jest w sposób asynchroniczny, gdy metoda start() wywołana zostanie z wartością false dla parametru waitForCompletion.

Definiuje wartość właściwości type obiektu zdarzenia complete.

To zdarzenie ma następujące właściwości:

WłaściwośćWartość
bubblesfalse
bitmapDataObiekt BitmapData zawierający wynik zakończonej operacji (lub null, jeśli obiektem docelowym nie był obiekt BitmapData).
byteArrayObiekt ByteArray zawierający wynik zakończonej operacji (lub null, jeśli obiektem docelowym nie był obiekt ByteArray).
cancelablefalse; nie ma domyślnego zachowania, które można byłoby anulować.
currentTargetObiekt przetwarzający aktywnie obiekt Event za pomocą detektora zdarzeń.
targetObiekt ShaderJob zgłaszający zakończenie.
vectorObiekt Vector.Instancja <Number> zawierająca wynik zakończonej operacji (lub null, jeśli obiektem docelowym nie była instancja Vector<Number>).




[ X ]Dlaczego język angielski?
Treść dokumentacji języka ActionScript 3.0 wyświetlana w języku angielskim

Niektóre części dokumentacji języka ActionScript 3.0 nie są przetłumaczone na poszczególne języki. Gdy element nie jest przetłumaczony na dany język, jest wyświetlany tekst angielski. Na przykład opis klasy ga.controls.HelpBox nie jest przetłumaczony na żaden dodatkowy język. Z tego powodu polska wersja dokumentacji zawiera opis klasy ga.controls.HelpBox w języku angielskim.