Filtr Blask gradientu

Flash Player 9 i nowsze wersje, Adobe AIR 1.0 i nowsze wersje

Klasa GradientGlowFilter umożliwia zastosowanie obiektu wzmocnionej poświaty do obiektów wyświetlanych lub obiektów BitmapData. Efekt ten zapewnia większe sterowanie blaskiem, a jednocześnie sprawia, że obiekt z blaskiem ma bardziej realistyczny wygląd. Dodatkowo filtr poświaty gradientowej umożliwia nakładanie poświaty na wewnętrzne lub zewnętrzne obszary albo górne krawędzie obiektu.

W poniższym przykładzie przedstawiono rysowanie okręgu na stole montażowym oraz stosowanie dla niego filtru poświaty gradientowej. W miarę dalszego przesuwania myszą w prawo i w dół natężenie rozmycia zwiększa się w odpowiednio w poziomie i w pionie. Ponadto natężenie rozmycia zwiększa się za każdym razem po kliknięciu stołu montażowego.

import flash.events.MouseEvent; 
import flash.filters.BitmapFilterQuality; 
import flash.filters.BitmapFilterType; 
import flash.filters.GradientGlowFilter; 
 
// Create a new Shape instance. 
var shape:Shape = new Shape(); 
 
// Draw the shape. 
shape.graphics.beginFill(0xFF0000, 100); 
shape.graphics.moveTo(0, 0); 
shape.graphics.lineTo(100, 0); 
shape.graphics.lineTo(100, 100); 
shape.graphics.lineTo(0, 100); 
shape.graphics.lineTo(0, 0); 
shape.graphics.endFill(); 
 
// Position the shape on the Stage. 
addChild(shape); 
shape.x = 100; 
shape.y = 100; 
 
// Define a gradient glow. 
var gradientGlow:GradientGlowFilter = new GradientGlowFilter(); 
gradientGlow.distance = 0; 
gradientGlow.angle = 45; 
gradientGlow.colors = [0x000000, 0xFF0000]; 
gradientGlow.alphas = [0, 1]; 
gradientGlow.ratios = [0, 255]; 
gradientGlow.blurX = 10; 
gradientGlow.blurY = 10; 
gradientGlow.strength = 2; 
gradientGlow.quality = BitmapFilterQuality.HIGH; 
gradientGlow.type = BitmapFilterType.OUTER; 
 
// Define functions to listen for two events. 
function onClick(event:MouseEvent):void 
{ 
    gradientGlow.strength++; 
    shape.filters = [gradientGlow]; 
} 
 
function onMouseMove(event:MouseEvent):void 
{ 
    gradientGlow.blurX = (stage.mouseX / stage.stageWidth) * 255; 
    gradientGlow.blurY = (stage.mouseY / stage.stageHeight) * 255; 
    shape.filters = [gradientGlow]; 
} 
stage.addEventListener(MouseEvent.CLICK, onClick); 
stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);