flash actionscript3.0 beginGradientFill渐变填充 水晶按钮制作
flash actionscript3.0 beginGradientFill渐变填充 水晶按钮制作 public beginGradientFill(fillType:String,colors:Array,alphas:Array,ratios:Array,matrix:Object,[spreadMethod:String],[interpolationMethod:String],[focalPointRatio:Number]) : Void fillType:String ― 有效值为字符串"linear"和字符串"radial"。 colors:Array ― 用于渐变色的 RGB 十六进制颜色值的数组;例如,红色为 0xFF0000,蓝色为 0x0000FF。可以至多指定 15 种颜色。对于每种颜色,请确保在 alphas 和 ratios 参数中指定对应值。 alphas:Array ― colors 数组中对应颜色的 Alpha 值数组;有效值为 0 到 100。如果值小于 0,则 Flash 使用 0。如果值大于 100,则 Flash 使用 100。 ratios:Array ― 颜色分布比例数组;有效值为 0 到 255。该值定义颜色采样率为 100% 之处的宽度百分比。为 colors 参数中的每个值指定一个值。 例如,对于包含蓝和绿两种颜色的线性渐变,下图显示了基于不同 ratios 数组值的颜色配比: 主要是两种线性填充和放射填充GradientType.RADIAL 放射 GradientType.LINEAR 线性
ui/uBall.as文件ui目录下uBall.as文件 package ui { import flash.display.Sprite; import flash.geom.*; import flash.filters.*; import flash.display.SpreadMethod; import flash.display.DisplayObject; import flash.geom.*; import flash.display.*; public class uBall extends Sprite { private var earth,moon:Sprite=new Sprite();//创建容器 public function uBall() { var matrix:Matrix=new Matrix(); matrix.createGradientBox(100,100,0); matrix.translate(-50,-35); var colors:Array=[0xA7E600,0x00552F]; var alphas:Array=[1,1]; var ratios:Array=[0x00,0xff]; earth=new Sprite(); earth.graphics.lineStyle(); earth.graphics.beginGradientFill(GradientType.RADIAL,colors,alphas,ratios,matrix); earth.graphics.drawCircle(0,50); earth.graphics.endFill(); //加入帧事件 addChild(earth); var mySprite:Sprite =new Sprite(); var color:Array=[0xFFFFFF,0xFFFFFF];//设置颜色数组 var alphaAr:Array=[0.8,0];//透明度数组 var rotios:Array=[0x33,0xff];//偏移量,数组 var matix:Matrix =new Matrix()//矩阵 matix.createGradientBox(100,0); matix.translate(-50,-25); matix.rotate(1.20); mySprite.graphics .beginGradientFill(GradientType.LINEAR,color,alphaAr,rotios,matix) mySprite.graphics.drawCircle(0,46);//比原来圆小4个像素 addChild(mySprite); var gao:Sprite =new Sprite(); var colorg:Array=[0xFFFFFF,0xFFFFFF];//设置颜色数组 var alphag:Array=[0.3,0];//透明度数组 var rotiog:Array=[0xcc,0xff];//偏移量,数组 var matixg:Matrix =new Matrix()//矩阵 matixg.createGradientBox(100,-50); matixg.rotate(1.57); gao.graphics .beginGradientFill(GradientType.LINEAR,colorg,alphag,rotiog,matixg) gao.graphics.drawEllipse(-25,-40,50,25); addChild(gao); } } } 注意:uBall文件里面不要有下面stage,不然会new不出来,报错 ?? ???? stage.stageWidth; 主文件 package { import flash.display.Sprite; import flash.events.Event; import ui.uBall; public class hu extends Sprite { public function hu() { //把uBall封装类new一个 var bb:Sprite=new uBall(); addChild(bb); bb.x=200; bb.y=200; addEventListener(Event.ENTER_FRAME,Run); } public function Run(e:Event):void{ } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |