Pakket | flash.filters |
Klasse | public class ShaderFilter |
Overerving | ShaderFilter BitmapFilter Object |
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10, AIR 1.5 |
Als u een nieuw filter wilt maken, gebruikt u de constructor new ShaderFilter()
. Het gebruik van filters is afhankelijk van het object waarop u het filter toepast:
- Wanneer u filters wilt toepassen op filmclips, tekstvelden, knoppen en video, gebruikt u de eigenschap
filters
(overerfd van DisplayObject). Het instellen van de eigenschapfilters
van een object wijzigt het object niet en het filter kan ongedaan worden gemaakt door de eigenschapfilters
te wissen. - Wanneer u filters wilt toepassen op objecten BitmapData, gebruikt u de methode
BitmapData.applyFilter()
. WanneerapplyFilter()
op een object BitmapData wordt aangeroepen, wordt van het bronobject BitmapData en het filterobject een gefilterde afbeelding gegenereerd.
Wanneer u een filter toepast op een weergaveobject, wordt de waarde van de eigenschap cacheAsBitmap
van het object op true ingesteld. Wanneer u alle filters verwijdert, wordt de oorspronkelijke waarde van cacheAsBitmap
hersteld.
Dit filter ondersteunt werkgebiedschaling. Schalen, roteren en scheeftrekken worden echter niet ondersteund. Wanneer het object zelf wordt geschaald (wanneer de eigenschappen scaleX
en scaleY
niet zijn ingesteld op 100%), wordt het filter niet geschaald. Het wordt alleen geschaald wanneer de gebruiker op het werkgebied inzoomt.
Er wordt geen filter toegepast als de resulterende afbeelding groter is dan de maximale afmetingen. In AIR 1.5 en Flash Player 10 is de maximale grootte 8,191 pixels breed of hoog en mag het totale aantal pixels niet groter zijn dan 16,777,215 pixels. (Als een afbeelding 8,191 pixels breed is, kan deze daarom slechts 2048 pixels hoog zijn.) In Flash Player 9 en lager en AIR 1.1 en lager is de maximale hoogte 2880 pixels en de maximale breedte 2880 pixels. Wanneer u bijvoorbeeld inzoomt op een grote filmclip met een toegepast filter, wordt het filter uitgeschakeld wanneer de resulterende afbeelding de maximale afmetingen overschrijdt.
Als u wilt opgeven dat de Shader-instantie het filter moet gebruiken, geeft u de Shader-instantie als een argument door aan de constructor ShaderFilter()
, of stelt u deze in als de waarde van de eigenschap shader
.
Als de uitvoer van de arcering de begrenzingen van het gefilterde object mag overschrijden, gebruikt u de eigenschappen leftExtension
, rightExtension
, topExtension
en bottomExtension
.
Verwante API-elementen
flash.display.DisplayObject.cacheAsBitmap
flash.display.BitmapData.applyFilter()
flash.display.Shader
Eigenschap | Gedefinieerd door | ||
---|---|---|---|
bottomExtension : int
De groei in pixels aan de onderzijde van het doelobject. | ShaderFilter | ||
constructor : Object
Verwijzing naar het klasseobject of de constructorfunctie van een bepaalde objectinstantie. | Object | ||
leftExtension : int
De groei in pixels aan de linkerzijde van het doelobject. | ShaderFilter | ||
rightExtension : int
De groei in pixels aan de rechterzijde van het doelobject. | ShaderFilter | ||
shader : Shader
De arcering die voor dit filter moet worden gebruikt. | ShaderFilter | ||
topExtension : int
De groei in pixels aan de bovenzijde van het doelobject. | ShaderFilter |
Methode | Gedefinieerd door | ||
---|---|---|---|
ShaderFilter(shader:Shader = null)
Hiermee wordt een nieuw arceerfilter gemaakt. | ShaderFilter | ||
Retourneert een object BitmapFilter dat een exacte kopie van het oorspronkelijke object BitmapFilter is. | BitmapFilter | ||
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 |
bottomExtension | eigenschap |
bottomExtension:int
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10, AIR 1.5 |
De groei in pixels aan de onderzijde van het doelobject.
De groei is het gebied buiten de begrenzingen van het doelobject dat tijdens de uitvoering aan de arcering is doorgegeven. Tijdens de uitvoering berekent Flash Player of AIR de normale begrenzingen van een filmclip en worden de begrenzingen uitgebreid op basis van de waarden leftExtension
, rightExtension
, topExtension
en bottomExtension
.
De standaardwaarde is 0.
Implementatie
public function get bottomExtension():int
public function set bottomExtension(value:int):void
leftExtension | eigenschap |
leftExtension:int
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10, AIR 1.5 |
De groei in pixels aan de linkerzijde van het doelobject.
De groei is het gebied buiten de begrenzingen van het doelobject dat tijdens de uitvoering aan de arcering is doorgegeven. Tijdens de uitvoering berekent Flash Player of AIR de normale begrenzingen van een filmclip en worden de begrenzingen uitgebreid op basis van de waarden leftExtension
, rightExtension
, topExtension
en bottomExtension
.
De standaardwaarde is 0.
Implementatie
public function get leftExtension():int
public function set leftExtension(value:int):void
rightExtension | eigenschap |
rightExtension:int
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10, AIR 1.5 |
De groei in pixels aan de rechterzijde van het doelobject.
De groei is het gebied buiten de begrenzingen van het doelobject dat tijdens de uitvoering aan de arcering is doorgegeven. Tijdens de uitvoering berekent Flash Player of AIR de normale begrenzingen van een filmclip en worden de begrenzingen uitgebreid op basis van de waarden leftExtension
, rightExtension
, topExtension
en bottomExtension
.
De standaardwaarde is 0.
Implementatie
public function get rightExtension():int
public function set rightExtension(value:int):void
shader | eigenschap |
shader:Shader
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10, AIR 1.5 |
De arcering die voor dit filter moet worden gebruikt.
De arcering die aan de eigenschap shader
wordt toegewezen, moet minstens één image4
-invoer opgeven. De invoer hoeft niet in de code te worden opgegeven met de eigenschap input
van het gekoppelde ShaderInput-object. In plaats daarvan wordt automatisch het object waarop het filter wordt toegepast, als eerste invoer gebruikt (de invoer met index
0). Een arcering die als filter wordt gebruikt, kan meer dan één filter opgeven, in welk geval aanvullende invoer moet worden opgegeven door de eigenschap input
van de ShaderInput-instantie in te stellen.
Wanneer u een Shader-instantie aan deze eigenschap toewijst, wordt de arcering intern gekopieerd en gebruikt de filterbewerking deze interne kopie, niet de verwijzing naar de originele arcering. Wijzigingen die worden aangebracht in de arcering, zoals een gewijzigde parameterwaarde, invoer of bytecode, worden niet toegepast op de gekopieerde arcering die wordt gebruikt voor het filter. Als u wilt dat wijzigingen in de arcering worden meegenomen in de filteruitvoer, moet u de Shader-instantie opnieuw toewijzen aan de eigenschap shader.
Net als alle filters moet u de instantie ShaderFilter opnieuw aan de eigenschap filters
van het weergaveobject toewijzen om filterwijzigingen toe te passen.
Implementatie
public function get shader():Shader
public function set shader(value:Shader):void
topExtension | eigenschap |
topExtension:int
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10, AIR 1.5 |
De groei in pixels aan de bovenzijde van het doelobject.
De groei is het gebied buiten de begrenzingen van het doelobject dat tijdens de uitvoering aan de arcering is doorgegeven. Tijdens de uitvoering berekent Flash Player of AIR de normale begrenzingen van een filmclip en worden de begrenzingen uitgebreid op basis van de waarden leftExtension
, rightExtension
, topExtension
en bottomExtension
.
De standaardwaarde is 0.
Implementatie
public function get topExtension():int
public function set topExtension(value:int):void
ShaderFilter | () | Constructor |
public function ShaderFilter(shader:Shader = null)
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10, AIR 1.5 |
Hiermee wordt een nieuw arceerfilter gemaakt.
Parametersshader:Shader (default = null ) — De arcering die voor dit filter moet worden gebruikt. Voor details en beperkingen die voor de arcering gelden, raadpleegt u de beschrijving van de eigenschap shader .
|
Verwante API-elementen
shader
van een ShaderFilter. De code tekent een cirkel in een Sprite-instantie en voegt deze aan het werkgebied toe. Wanneer de arcering wordt geladen, wordt het arceerfilter op die Sprite toegepast.
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 'gradient.pbj' heeft.
// // Source code for the shader: // <languageVersion : 1.0;> kernel RedGradientFilter < namespace: "Adobe::Example"; vendor: "Adobe examples"; version: 1; description: "Applies a gradient across the red channel of the input image."; > { input image4 src; output pixel4 dst; parameter float width < description: "The width of the image to which the shader is applied."; minValue: 0.0; >; void evaluatePixel() { pixel4 temp = sampleNearest(src, outCoord()); temp.r = 1.0 - (outCoord().x * (1.0 / width)); dst = temp; } } // // ActionScript source code: // package { import flash.display.Shader; import flash.display.Sprite; import flash.events.Event; import flash.filters.ShaderFilter; import flash.net.URLLoader; import flash.net.URLLoaderDataFormat; import flash.net.URLRequest; public class ShaderFilterExample extends Sprite { private var loader:URLLoader; private var s:Sprite; public function ShaderFilterExample() { loader = new URLLoader(); loader.dataFormat = URLLoaderDataFormat.BINARY; loader.addEventListener(Event.COMPLETE, loadCompleteHandler); loader.load(new URLRequest("gradient.pbj")); s = new Sprite(); s.graphics.beginFill(0x009900); s.graphics.drawCircle(100, 100, 100); addChild(s); } private function loadCompleteHandler(event:Event):void { var shader:Shader = new Shader(loader.data); shader.data.width.value = [s.width]; var gradientFilter:ShaderFilter = new ShaderFilter(shader); s.filters = [gradientFilter]; } } }
Wed Jun 13 2018, 11:42 AM Z