陈童的博客's Archivers

From everyinch on 2013-05-01 09:05:46

使用遮罩方法美化:万花筒之等边三角形镜面反射

点击图像打开实例文件。操作提示:点击用来变化万花筒图案。
<img class="aligncenter size-medium wp-image-937" title="kal5" alt="" src="http://www.everyinch.net/wp-content/uploads/2013/05/kal5-300x300.jpg" width="300" height="300" />

使用遮罩的主类:
[code lang="as3"]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();
}
}
}[/code]

查看完整版本: 使用遮罩方法美化:万花筒之等边三角形镜面反射

Tags: 万花筒


©陈童的博客