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(); } } }