Pakiet | flash.filters |
Klasa | public final class BlurFilter |
Dziedziczenie | BlurFilter BitmapFilter Object |
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9 |
quality
tego filtru ustawiono wartość low, wówczas wynikiem będzie nieznaczna utrata ostrości. Jeśli dla właściwości quality
ustawiono wartość high, uzyskuje się efekt rozmycia gaussowskiego. Filtr można zastosować do dowolnego obiektu ekranowego (obiektu, który dziedziczy z klasy DisplayObject), takiego jak MovieClip, SimpleButton, TextField i Video, a także do obiektów BitmapData.
W celu utworzenia nowego filtru należy użyć konstruktora new BlurFilter()
. 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.
Zastosowanie filtru do obiektu wyświetlanego powoduje, że dla właściwości cacheAsBitmap
obiektu wyświetlanego zostaje ustawiona wartość 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, rotacji ani pochylenia. Jeśli obiekt został wyskalowany (właściwości scaleX
i scaleY
mają wartości różne niż 100%), efekt filtru 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.
Powiązane elementy interfejsu API
flash.display.DisplayObject.cacheAsBitmap
flash.display.BitmapData.applyFilter()
Właściwość | Zdefiniowane przez | ||
---|---|---|---|
blurX : Number
Intensywność rozmycia w poziomie. | BlurFilter | ||
blurY : Number
Intensywność rozmycia w pionie. | BlurFilter | ||
constructor : Object
Odwołanie do obiektu klasy lub funkcji konstruktora, dotyczące danej instancji obiektu. | Object | ||
quality : int
Wykonywana liczba operacji rozmycia. | BlurFilter |
Metoda | Zdefiniowane przez | ||
---|---|---|---|
Inicjuje filtr z zadanymi parametrami. | BlurFilter | ||
[przesłanianie]
Zwraca kopię tego obiektu typu Filter. | BlurFilter | ||
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 |
blurX | właściwość |
blurX:Number
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9 |
Intensywność rozmycia w poziomie. Poprawne wartości należą do zakresu od 0 do 255 (wielkość zmiennoprzecinkowa). Wartością domyślną jest 4. Wartości, które są potęgami 2 (na przykład liczby 2, 4, 8, 16 i 32), są zoptymalizowane i są renderowane szybciej niż inne wartości.
Implementacja
public function get blurX():Number
public function set blurX(value:Number):void
blurY | właściwość |
blurY:Number
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9 |
Intensywność rozmycia w pionie. Poprawne wartości należą do zakresu od 0 do 255 (wielkość zmiennoprzecinkowa). Wartością domyślną jest 4. Wartości, które są potęgami 2 (na przykład liczby 2, 4, 8, 16 i 32), są zoptymalizowane i są renderowane szybciej niż inne wartości.
Implementacja
public function get blurY():Number
public function set blurY(value:Number):void
quality | właściwość |
quality:int
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9 |
Wykonywana liczba operacji rozmycia. Wartością domyślną jest BitmapFilterQuality.LOW
, która jest równoważna jednorazowemu zastosowaniu filtra. Wartość BitmapFilterQuality.MEDIUM
powoduje dwukrotne zastosowanie filtra; wartość BitmapFilterQuality.HIGH
powoduje trzykrotne zastosowanie filtra i umożliwia uzyskanie rozmycia gaussowskiego. Filtry o niższych wartościach są renderowane szybciej.
W większości zastosowań wystarczające są następujące wartości quality
: low, medium i high. Mimo że w celu zwiększenia wielokrotności stosowania rozmycia można stosować dodatkowe wartości liczbowe (aż do 15), należy pamiętać o tym, że wyższe wartości są renderowane wolniej. Zamiast zwiększać wartość quality
— w celu uzyskania podobnego efektu przy krótszym czasie renderowania — można po prostu zwiększać wartości właściwości blurX
i blurY
.
Za pomocą następujących stałych BitmapFilterQuality można określać wartości właściwości quality
:
BitmapFilterQuality.LOW
BitmapFilterQuality.MEDIUM
BitmapFilterQuality.HIGH
Implementacja
public function get quality():int
public function set quality(value:int):void
BlurFilter | () | Konstruktor |
public function BlurFilter(blurX:Number = 4.0, blurY:Number = 4.0, quality:int = 1)
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9 |
Inicjuje filtr z zadanymi parametrami. Wartość domyślna powoduje wygenerowanie nieostrego obrazu.
ParametryblurX:Number (default = 4.0 ) — Stopień rozmycia w poziomie. Poprawne wartości należą do zakresu od 0 do 255,0 (wartość zmiennoprzecinkowa).
| |
blurY:Number (default = 4.0 ) — Stopień rozmycia w pionie. Poprawne wartości należą do zakresu od 0 do 255,0 (wielkość zmiennoprzecinkowa).
| |
quality:int (default = 1 ) — Liczba operacji zastosowania filtra. Jakość można określić za pomocą stałych BitmapFilterQuality:
Zastosowanie jakości high umożliwia uzyskanie rozmycia gaussowskiego. W większości zastosowań wystarczające są te trzy wartości. Mimo że w celu osiągnięcia różnych efektów można stosować dodatkowe wartości liczbowe (aż do 15), należy pamiętać o tym, że wyższe wartości są renderowane wolniej. |
clone | () | metoda |
override public function clone():BitmapFilter
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9 |
Zwraca kopię tego obiektu typu Filter.
ZwracaBitmapFilter — Nowa instancja BlurFilter z wszystkimi właściwościami oryginalnej instancji BlurFilter.
|
- Zaimportuj wymagane klasy.
- Zadeklaruj trzy właściwości używane w funkcji
draw()
, która rysuje obiekt, do którego zostanie zastosowany filtr rozmycia. - Utwórz funkcję konstruktora
BlurFilterExample()
, którego działanie jest następujące:- Wywołuje funkcję
draw()
, która zostanie zadeklrawowana później. - Deklaruje zmienną
filter
jako obiekt BitmapFilter i przypisuje ją do wartości zwracanej przez wywołanie metodygetBitmapFilter()
. - Tworzy nowy obiekt tablicy
myFilters
i dodaje filtrfilter
do tablicy, a następnie przypisujemyFilters
do własciwościfilters
obiektu BlurFilterExample. To spowoduje zastosowanie wszystkich filtrów zalezionych w obiekciemyFilters
— w tym przykładzie jest to filtrfilter
.
- Wywołuje funkcję
- Utwórz funkcję
getBitmapFilter()
w celu utworzenia i ustawienia właściwości dla filtru. - Utwórz funkcję
draw()
. W tej funkcji stosowane są metody klasy Graphics, do której dostęp uzyskuje się za pośrednictwem właściwościgraphics
klasy Sprite, w celu rysowania kwadratu.
package { import flash.display.Sprite; import flash.filters.BitmapFilter; import flash.filters.BitmapFilterQuality; import flash.filters.BlurFilter; public class BlurFilterExample extends Sprite { private var bgColor:uint = 0xFFCC00; private var size:uint = 80; private var offset:uint = 50; public function BlurFilterExample() { draw(); var filter:BitmapFilter = getBitmapFilter(); var myFilters:Array = new Array(); myFilters.push(filter); filters = myFilters; } private function getBitmapFilter():BitmapFilter { var blurX:Number = 30; var blurY:Number = 30; return new BlurFilter(blurX, blurY, BitmapFilterQuality.HIGH); } private function draw():void { graphics.beginFill(bgColor); graphics.drawRect(offset, offset, size, size); graphics.endFill(); } } }
Tue Jun 12 2018, 12:06 PM Z