渐变填充

beginGradientFill可以为图像填充渐变颜色或透明度

 

beginGradientFill(

type,colors,alphas,rations,matrix,spreadMethod,interpolationMethod,focalPointRatio

):void

 

type 渐变模式可以选择GradientType。LineAr线性渐变和Gradient,RADIAL径向渐变,线性渐变是在直线上的端点之间绘制一个颜色带,而径向渐变是从中心点向外绘制一个环形渐变

colors 指定渐变中的颜色数组,透明度可以是0~1的任意值,数组中的透明度必须和颜色数组中的颜色值一致,相同索引值的透明度与颜色一一对应

rations 同样也是一个数组,数组表示colors数组中每个颜色在整个渐变区域中的分布比,每个数组的值都为0-255,0表示渐变的最左边或中心位置,255表示渐变的最右边或外径

matrix 变换矩形决定了渐变在图形中如何移动,缩放和旋转

spreadMethod 当渐变区域小于要填充的图形尺寸时,用这个参数定义超过部分的填充方式,可以选择spreadmethod类的PAD,REFLECT和REPEAT这三个静态属性之一,PAD会继续填充渐变终点的颜色,REFLECT对称填充渐变颜色 REPEAT没有什么特殊的地方

interpolationMethod指定渐变填充中的中间颜色计算方法可以在LINEAR_RGB和RGB静态属性中二选一

focalPointRatio 对于径向渐变,这个参数决定了渐变在水平半径上的焦点,-1.0和1.0设置的焦点在渐变的边缘,0设置焦点在中心位置,其他任何中间值都分布在中心和边缘之间

package
{
	import flash.display.Sprite;
	import flash.events.MouseEvent;
	import flash.geom.Matrix;
	import flash.display.GradientType;

	[SWF(width=550,height=400,backgroundColor=0xFFFFFF)]
	
	public class as4 extends Sprite
	{
		public function as4()
		{
			stage.addEventListener(MouseEvent.MOUSE_MOVE, onStageMouseMove);
			drawBackground();
		}
		
		private function drawBackground():void
		{
			var colors:Array = [0xFFFF00,0xFF0000,0x000000];
			var alphas:Array = [1,1,1];
			var rations:Array = [50,100,255];
			var matrix:Matrix = new Matrix();
			matrix.createGradientBox(200,200,0, stage.mouseX-100,stage.mouseY-100);
			graphics.clear();
			graphics.beginGradientFill(GradientType.RADIAL,colors,alphas,rations,matrix);
			graphics.lineTo(stage.stageWidth,0);
			graphics.lineTo(stage.stageWidth,stage.stageHeight);
			graphics.lineTo(0,stage.stageHeight);
			graphics.lineTo(0,0);
			graphics.endFill();
		}
		
		private function onStageMouseMove(event:MouseEvent):void
		{
			drawBackground();
			event.updateAfterEvent();
		}
	}
}