使用遮罩的主类:
package{
import flash.display.GradientType;
import flash.display.Shape;
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.geom.Matrix;
import net.everyinch.kals.KaleidoscopeThreeMirrors;
[SWF(width=800,height=600,backgroundColor=0x000000)]
public class KaleidoscopeThreeMirrorsTest2 extends Sprite{
private var kal:KaleidoscopeThreeMirrors;
private var radius:Number = 260;
private var container:Sprite;
private var maskShape:Shape;
private var gradientShape:Shape;
public function KaleidoscopeThreeMirrorsTest2(){
kal = new KaleidoscopeThreeMirrors("assets/Flower0.jpg",60,radius);
container = new Sprite();
container.x = 100;
container.y = 10;
addChild(container);
container.addChild(kal);
maskShape = new Shape();
addChild(maskShape);
maskShape.graphics.beginFill(0xffffff,1);
maskShape.graphics.drawCircle(0,0,radius);
maskShape.graphics.endFill();
maskShape.x = 400;
maskShape.y = 300;
container.mask = maskShape;
gradientShape = new Shape();
addChild(gradientShape);
gradientShape.x = 400;
gradientShape.y = 300;
var matrix:Matrix = new Matrix();
var colors:Array = [0x000000,0x000000];
var alphas:Array = [0,1];
var ratios:Array = [150,255];
matrix.createGradientBox(radius*2,radius*2,0,-radius,-radius);
gradientShape.graphics.lineStyle();
gradientShape.graphics.beginGradientFill(GradientType.RADIAL,colors,alphas,ratios,matrix);
gradientShape.graphics.drawCircle(0,0,radius);
gradientShape.graphics.endFill();
stage.addEventListener(MouseEvent.MOUSE_DOWN,onMouseDown);
}
private function drawMaskAndGradient():void{
}
private function onMouseDown(e:MouseEvent):void{
kal.doSpin();
}
}
}
转载请注明:陈童的博客 » 使用遮罩方法美化:万花筒之等边三角形镜面反射
