Pakket | flash.display |
Klasse | public final dynamic class ShaderData |
Overerving | ShaderData Object |
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10, AIR 1.5 |
Deze eigenschappen worden toegevoegd aan het ShaderData-object als dit wordt gemaakt. De namen van de eigenschappen komen overeen met de namen die zijn opgegeven in de broncode van de arcering. Het gegevenstype van elke eigenschap varieert afhankelijk van welk aspect van de arcering de eigenschap vertegenwoordigt. De eigenschappen die de arceringsparameters vertegenwoordigen, zijn ShaderParameter-instanties, de eigenschappen die invoerafbeeldingen vertegenwoordigen, zijn ShaderInput-instanties en de eigenschappen die metagegevens van de arcering vertegenwoordigen, zijn instanties van de ActionScript-klasse die overeenkomen met hun gegevenstype (bijvoorbeeld een String-instantie voor tekstmetagegevens een een uint voor uint-metagegevens).
Neem als voorbeeld deze arcering, die is gedefinieerd met één invoerafbeelding (src
), twee parameters (size
en radius
) en drie metagegevenswaarden (nameSpace
, version
en 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()); } }
Als u een Shader-instantie maakt door de bytecode voor deze arcering te laden, bevat de ShaderData-instantie in de eigenschap data
deze eigenschappen:
Eigenschap | Gegevenstype | Waarde |
---|---|---|
naam | String | "NietsDoen" |
nameSpace | String | "Adobe::Voorbeeld" |
versie | String | "1" |
beschrijving | String | "Een arcering die niets doet, maar die dat wel goed doet." |
src | ShaderInput | [Een ShaderInput-instantie] |
size | ShaderParameter | [Een ShaderParameter-instantie, met eigenschappen voor de metagegevens van de parameter] |
radius | ShaderParameter | [Een ShaderParameter-instantie, met eigenschappen voor de metagegevens van de parameter] |
U ziet dat alle invoerafbeeldingen of parameters die zijn gedefinieerd in de broncode van de arcering maar die niet worden gebruikt in de functieevaluatePixel()
van de arcering, worden verwijderd als de arcering wordt gecompileerd naar bytecode. In dat geval wordt er geen overeenkomstige ShaderInput- of ShaderParameter-instantie toegevoegd als eigenschap van de ShaderData-instantie.
ShaderData-instanties worden gewoonlijk niet rechtstreeks in de ontwikkelcode gemaakt. Een ShaderData-instantie die gegevens, parameters en invoeren voor een arcering bevat, is beschikbaar als de eigenschap data
van de Shader-instantie.
Verwante API-elementen
Methode | Gedefinieerd door | ||
---|---|---|---|
ShaderData(byteCode:ByteArray)
Maakt een ShaderData-instantie. | ShaderData | ||
Geeft aan of voor een object een opgegeven eigenschap is gedefinieerd. | Object | ||
Geeft aan of een instantie van de klasse Object zich in de prototypeketen van het object bevindt dat als parameter is opgegeven. | Object | ||
Geeft aan of de opgegeven eigenschap bestaat en kan worden opgesomd. | Object | ||
Stelt de beschikbaarheid van een dynamische eigenschap voor lusbewerkingen in. | Object | ||
Geeft de tekenreeksweergave van dit object weer, geformatteerd volgens de locatiespecifieke conventies. | Object | ||
Retourneert een tekenreeksrepresentatie van het opgegeven object. | Object | ||
Retourneert de primitieve waarde van het opgegeven object. | Object |
ShaderData | () | Constructor |
public function ShaderData(byteCode:ByteArray)
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10, AIR 1.5 |
Maakt een ShaderData-instantie. De constructor ShaderData wordt gewoonlijk niet rechtstreeks aangeroepen in de ontwikkelcode. Een ShaderData-instantie die gegevens, parameters en invoeren voor een Shader-instantie bevat, is toegankelijk via de eigenschap data
.
byteCode:ByteArray — De bytecode van de arcering.
|
Verwante API-elementen
data
opgesomd voor de weergave van de invoer, parameters en metagegevenseigenschappen van de arcering.
In dit voorbeeld wordt ervan uitgegaan dat er in dezelfde map als de uitvoermap van de toepassing een bytecodebestand voor de arcering bestaat dat de naam 'donothing.pbj' heeft.
// // 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]); } } } } }
Wed Jun 13 2018, 11:42 AM Z