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 

ShaderData  - AS3

Pakietflash.display
Klasapublic final dynamic class ShaderData
DziedziczenieShaderData Inheritance Object

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

Obiekt ShaderData zawiera właściwości reprezentujące dowolne parametry i dane wejściowe dla jądra modułu cieniującego, a także właściwości zawierające jakiekolwiek metadane określone dla tego modułu.

Te właściwości są dodawane do obiektu ShaderData podczas jego tworzenia. Nazwy właściwości są zgodne z nazwami określonymi w kodzie źródłowym modułu cieniującego. Typ danych każdej właściwości różni się w zależności od tego, który aspekt modułu cieniującego definiuje właściwość. Właściwości, które reprezentują parametry modułu cieniującego, są instancjami ShaderParameter; właściwości, które reprezentują obrazy wejściowe, są instancjami ShaderInput, a właściwości, które reprezentują metadane modułu cieniującego są instancjami klasy ActionScript odpowiadającej ich typom danych (np. instancja String dla metadanych tekstowych oraz uint dla metadanych uint).

Przykład: rozważmy moduł cieniujący zdefiniowany z jednym obrazem wejściowym (src), dwoma parametrami (size i radius) oraz trzema wartościami metadanych (nameSpace, version i description):

     <languageVersion : 1.0;>
     
     kernel DoNothing
     <
         namespace: "Adobe::Example";
         vendor: "Adobe examples";
         version: 1;
         description: "A shader that does nothing, but does it well.";
     >
     {
         input image4 src;
     
         output pixel4 dst;
         
         parameter float2 size
         <
             description: "The size of the image to which the kernel is applied";
             minValue: float2(0.0, 0.0);
             maxValue: float2(100.0, 100.0);
             defaultValue: float2(50.0, 50.0);
         >;
         
         parameter float radius
         <
             description: "The radius of the effect";
             minValue: 0.0;
             maxValue: 50.0;
             defaultValue: 25.0;
         >;
     
         void evaluatePixel()
         {
             float2 one = (radius / radius) ∗ (size / size);
             dst = sampleNearest(src, outCoord());
         }
     }
     

Jeśli instancja modułu cieniującego zostanie utworzona poprzez wczytanie kodu bajtowego dla tego modułu cieniującego, instancja ShaderData będzie zawierała następujące właściwości w swojej właściwości data:

WłaściwośćTyp danychWartość
nameString"DoNothing"
nameSpaceString"Adobe::Example"
versionString"1"
descriptionString"moduł cieniujący, który nic nie robi, ale robi to dobrze."
srcShaderInput [Instancja ShaderInput]
sizeShaderParameter [Instancja ShaderParameter zawierająca właściwości dla metadanych parametru]
radiusShaderParameter [Instancja ShaderParameter zawierająca właściwości dla metadanych parametru]

Należy zauważyć, że każdy obraz wejściowy lub parametr wejściowy zdefiniowany w kodzie źródłowym modułu cieniującego, ale nieużywany w funkcji evaluatePixel() modułu cieniującego, jest używany po skompilowaniu modułu cieniującego do kodu bajtów. W takim przypadku żadna odpowiadająca instancja ShaderInput ani ShaderParameter nie jest dodawana jako właściwość instancji ShaderData.

Zazwyczaj kod programisty nie tworzy instancji ShaderData. Instancja ShaderData zawierają dane, parametry oraz dane wejściowe dla modułu cieniującego jest dostępna jako właściwość data instancji modułu cieniującego.

Wyświetl przykłady

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
Metody publiczne
 MetodaZdefiniowane przez
  
Tworzy instancję ShaderData.
ShaderData
 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
Ustawia dostępność właściwości dynamicznej używanej w pętlach.
Object
 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
Konstruktor Szczegół

ShaderData

()Konstruktor
public function ShaderData(byteCode:ByteArray)

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

Tworzy instancję ShaderData. Zazwyczaj kod programisty nie wywołuje bezpośrednio konstruktora ShaderData. Dostęp do instancji ShaderData zawierającej dane, parametry oraz dane wejściowe dla instancji modułu cieniującego, jest uzyskiwany za pomocą właściwości data.

Parametry
byteCode:ByteArray — Kod bajtów modułu cieniującego.

Powiązane elementy interfejsu API

ShaderDataExample.1.as

Poniższy przykład prezentuje ładowanie modułu cieniującego i numerowanie instancji ShaderData w jej właściwości data w celu wyświetlenia danych wejściowych, parametrów oraz właściwości metadanych modułu cieniującego.

W tym przykładzie założono, że w tym samym katalogu, co katalog wyjściowy aplikacji, znajduje się plik kodu bajtowego modułu cieniującego o nazwie „donothing.pbj”.

//
// Source code for the shader:
//
<languageVersion : 1.0;>

kernel DoNothing
<
    namespace: "Adobe::Example";
    vendor: "Adobe examples";
    version: 1;
    description: "A shader that does nothing, but does it well.";
>
{
    input image4 src;
    
    output pixel4 dst;
    
    parameter float2 size
    <
        description: "The size of the image to which the shader is applied";
        minValue: float2(0.0, 0.0);
        maxValue: float2(100.0, 100.0);
        defaultValue: float2(50.0, 50.0);
    >;
    
    parameter float radius
    <
        description: "The radius of the effect";
        minValue: float(0.0);
        maxValue: float(50.0);
        defaultValue: float(25.0);
    >;

    void evaluatePixel()
    {
        float2 one = (radius / radius) * (size / size);
        dst = sampleNearest(src, outCoord());
    }
}

//
// ActionScript source code:
//
package {
    import flash.display.Shader;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.net.URLLoader;
    import flash.net.URLLoaderDataFormat;
    import flash.net.URLRequest;

    public class ShaderDataExample extends Sprite {
        
        private var loader:URLLoader;
        
        public function ShaderDataExample() {
            loader = new URLLoader();
            loader.dataFormat = URLLoaderDataFormat.BINARY;
            loader.addEventListener(Event.COMPLETE, loadCompleteHandler);
            loader.load(new URLRequest("donothing.pbj"));
        }
        
        private function loadCompleteHandler(event:Event):void {
            var shader:Shader = new Shader();
            shader.byteCode = loader.data;
            
            for (var p:String in shader.data) {
                trace(p, ":", shader.data[p]);
                for (var d:String in shader.data[p]) {
                    trace("\t", d, ":", shader.data[p][d]);
                }
            }
        }
    }
}




[ 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.