Pakiet | flash.filters |
Klasa | public class ShaderFilter |
Dziedziczenie | ShaderFilter BitmapFilter Object |
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5 |
W celu utworzenia nowego filtru należy użyć konstruktora new ShaderFilter()
. Użycie filtra jest uzależnione od obiektu, dla którego filtr ma być stosowany:
- Aby zastosować filtry do klipów filmowych, pól tekstowych, przycisków i filmów wideo, należy użyć właściwości
filters
(dziedziczona z klasy DisplayObject). Ustawienie właściwościfilters
obiektu nie powoduje modyfikacji obiektu, a filtr można usunąć, usuwając właściwośćfilters
. - Aby stosować filtry do obiektów BitmapData, należy użyć metody
BitmapData.applyFilter()
. Wywołanie metodyapplyFilter()
dla obiektu BitmapData powoduje wygenerowanie obrazu filtrowanego ze źródłowego obiektu BitmapData za pomocą obiektu filtru.
Jeśli filtr jest stosowany dla obiektu ekranowego, wartość właściwości cacheAsBitmap
tego obiektu jest równa true. Po usunięciu wszystkich filtrów zostaje przywrócona wartość oryginalna cacheAsBitmap
.
Filtr obsługuje skalowanie stołu montażowego. Jednak nie obsługuje skalowania ogólnego, obrotów ani pochylenia. Jeśli obiekt został wyskalowany (właściwości scaleX
i scaleY
mają wartości różne niż 100%), filtr nie jest skalowany. Jest skalowany tylko wówczas, gdy użytkownik powiększy stół montażowy.
Filtr nie zostanie zastosowany, jeśli wynikowy obraz przekracza maksymalne wymiary. W środowisku AIR 1.5 oraz w programie Flash Player 10 maksymalna wartość szerokości lub wysokości to 8 191 pikseli, a całkowita liczba pikseli nie może przekraczać 16 777 215 pikseli. (Dlatego, jeśli obraz jest szeroki na 8 192 pikseli, może mieć jedynie 2 048 pikseli wysokości). W programie Flash Player 9 i wcześniejszych wersjach oraz w środowisku AIR 1.1 i wcześniejszych wersjach ograniczenie wysokości i szerokości wynosiło 2880 pikseli. Przykład: powiększenie dużego klipu filmowego, do którego zastosowano filtr, powoduje, że filtr zostaje wyłączony, gdy obraz wynikowy przekroczy maksymalne wymiary.
Aby określić instancję Shader przeznaczoną do użycia z filtrem, należy wprowadzić instancję Shader jako argument do konstruktora ShaderFilter()
lub ustawić jako wartość właściwości shader
.
Aby wyniki działania modułu cieniującego przekraczały ograniczenia obiektu filtrowanego, należy użyć właściwości leftExtension
, rightExtension
, topExtension
i bottomExtension
.
Powiązane elementy interfejsu API
flash.display.DisplayObject.cacheAsBitmap
flash.display.BitmapData.applyFilter()
flash.display.Shader
Właściwość | Zdefiniowane przez | ||
---|---|---|---|
bottomExtension : int
Stopień wzrostu (w pikselach) na dole obiektu docelowego. | ShaderFilter | ||
constructor : Object
Odwołanie do obiektu klasy lub funkcji konstruktora, dotyczące danej instancji obiektu. | Object | ||
leftExtension : int
Stopień wzrostu (w pikselach) po lewej stronie obiektu docelowego. | ShaderFilter | ||
rightExtension : int
Stopień wzrostu (w pikselach) po prawej stronie obiektu docelowego. | ShaderFilter | ||
shader : Shader
Moduł cieniujący przeznaczony do użycia dla tego filtru. | ShaderFilter | ||
topExtension : int
Stopień wzrostu (w pikselach) na górnej stronie obiektu docelowego. | ShaderFilter |
Metoda | Zdefiniowane przez | ||
---|---|---|---|
ShaderFilter(shader:Shader = null)
Tworzy nowy filtr cieniujący. | ShaderFilter | ||
Zwraca obiekt BitmapFilter, który jest dokładną kopią oryginalnego obiektu BitmapFilter. | BitmapFilter | ||
Wskazuje, czy dla obiektu zdefiniowano określoną właściwość. | Object | ||
Wskazuje, czy instancja klasy Object należy do łańcucha prototypów obiektu określonego jako parametr. | Object | ||
Wskazuje, czy określona właściwość istnieje i jest przeliczalna. | Object | ||
Ustawia dostępność właściwości dynamicznej używanej w pętlach. | Object | ||
Zwraca ciąg reprezentujący obiekt — sformatowany zgodnie z konwencjami właściwymi dla ustawień regionalnych. | Object | ||
Zwraca ciąg reprezentujący określony obiekt. | Object | ||
Zwraca pierwotną wartość dla określonego obiektu. | Object |
bottomExtension | właściwość |
bottomExtension:int
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5 |
Stopień wzrostu (w pikselach) na dole obiektu docelowego.
Wzrost obszaru poza ograniczenia obiektu docelowego, jaki został przekazany do modułu cieniującego podczas wykonywania. W czasie wykonywania program Flash Player lub środowisko AIR oblicza normalne ograniczenia klipu filmowego i rozszerza ograniczenia na podstawie wartości leftExtension
, rightExtension
, topExtension
i bottomExtension
.
Wartością domyślną jest 0.
Implementacja
public function get bottomExtension():int
public function set bottomExtension(value:int):void
leftExtension | właściwość |
leftExtension:int
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5 |
Stopień wzrostu (w pikselach) po lewej stronie obiektu docelowego.
Wzrost obszaru poza ograniczenia obiektu docelowego, jaki został przekazany do modułu cieniującego podczas wykonywania. W czasie wykonywania program Flash Player lub środowisko AIR oblicza normalne ograniczenia klipu filmowego i rozszerza ograniczenia na podstawie wartości leftExtension
, rightExtension
, topExtension
i bottomExtension
.
Wartością domyślną jest 0.
Implementacja
public function get leftExtension():int
public function set leftExtension(value:int):void
rightExtension | właściwość |
rightExtension:int
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5 |
Stopień wzrostu (w pikselach) po prawej stronie obiektu docelowego.
Wzrost obszaru poza ograniczenia obiektu docelowego, jaki został przekazany do modułu cieniującego podczas wykonywania. W czasie wykonywania program Flash Player lub środowisko AIR oblicza normalne ograniczenia klipu filmowego i rozszerza ograniczenia na podstawie wartości leftExtension
, rightExtension
, topExtension
i bottomExtension
.
Wartością domyślną jest 0.
Implementacja
public function get rightExtension():int
public function set rightExtension(value:int):void
shader | właściwość |
shader:Shader
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5 |
Moduł cieniujący przeznaczony do użycia dla tego filtru.
Moduł cieniujący przypisany do właściwości shader
musi określać co najmniej jeden obraz wejściowy image4
. Obiekty wejściowe nie muszą być określane w kodzie za pomocą właściwości input
skojarzonych obiektów ShaderInput. Zamiast tego obiekt, do którego stosowany jest filtr, jest używany automatycznie jako pierwszy obiekt wejściowy (obiekt wejściowy, którego wartość index
jest równa 0). Moduł cieniujący używany jako filtr może określać więcej niż jeden obiekt wejściowy — w takim przypadku wszelkie dodatkowe obiekty wejściowe należy określać poprzez ustawienie właściwości input
instancji ShaderInput.
Po przypisaniu instancji Shader do tej właściwości moduł cieniujący zostaje skopiowany wewnętrznie i wówczas operacja filtrowania korzysta z kopii wewnętrznej, a nie z odwołania 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 skopiowanego modułu cieniującego, który jest używany dla filtru. Aby umożliwić uwzględnianie zmian modułu cieniującego w wynikach działania filtra, należy ponownie przypisać instancję Shader do właściwości shader.
Podobnie jak dla wszystkich filtrów również należy ponownie przypisać instancję ShaderFilter do właściwości filters
obiektu ekranowego w celu zastosowania zmian w filtrze.
Implementacja
public function get shader():Shader
public function set shader(value:Shader):void
topExtension | właściwość |
topExtension:int
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5 |
Stopień wzrostu (w pikselach) na górnej stronie obiektu docelowego.
Wzrost obszaru poza ograniczenia obiektu docelowego, jaki został przekazany do modułu cieniującego podczas wykonywania. W czasie wykonywania program Flash Player lub środowisko AIR oblicza normalne ograniczenia klipu filmowego i rozszerza ograniczenia na podstawie wartości leftExtension
, rightExtension
, topExtension
i bottomExtension
.
Wartością domyślną jest 0.
Implementacja
public function get topExtension():int
public function set topExtension(value:int):void
ShaderFilter | () | Konstruktor |
public function ShaderFilter(shader:Shader = null)
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5 |
Tworzy nowy filtr cieniujący.
Parametryshader:Shader (default = null ) — Moduł cieniujący przeznaczony do użycia dla tego filtru. Informacje szczegółowe i ograniczenia, z którymi musi być zgodny moduł cieniujący, zawiera opis właściwości shader .
|
Powiązane elementy interfejsu API
shader
obiektu ShaderFilter. Kod powoduje narysowanie okręgu w instancji Sprite i dodanie go do stołu montażowego. Po załadowaniu modułu cieniującego filtr cieniujący zostaje zastosowany do instancji Sprite.
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 „gradient.pbj”.
// // 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]; } } }
Tue Jun 12 2018, 12:06 PM Z