加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flash actionscript3.0 beginGradientFill渐变填充 水晶按钮制作

发布时间:2020-12-15 06:50:44 所属栏目:百科 来源:网络整理
导读:flash actionscript3.0 beginGradientFill渐变填充 水晶按钮制作 public beginGradientFill(fillType:String,colors:Array,alphas:Array,ratios:Array,matrix:Object,[spreadMethod:String],[interpolationMethod:String],[focalPointRatio:Number]) : Void

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 种颜色。对于每种颜色,请确保在 alphasratios 参数中指定对应值。

alphas:Array ― colors 数组中对应颜色的 Alpha 值数组;有效值为 0 到 100。如果值小于 0,则 Flash 使用 0。如果值大于 100,则 Flash 使用 100。

ratios:Array ― 颜色分布比例数组;有效值为 0 到 255。该值定义颜色采样率为 100% 之处的宽度百分比。为 colors 参数中的每个值指定一个值。

例如,对于包含蓝和绿两种颜色的线性渐变,下图显示了基于不同 ratios 数组值的颜色配比:

主要是两种线性填充和放射填充

GradientType.RADIAL 放射

GradientType.LINEAR 线性


?? ??? ??? ?var colors:Array=[0xA7E600,0x078914,0x00552F];
?? ??? ??? ?var alphas:Array=[1,1,1]; //注意是0到1之间的 和颜色对应。
?? ??? ??? ?var ratios:Array=[0x00,0xff,0xff];


ratios

渐变

[0,127]

[0,255]

[127,255]


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;
?? ???? stage.stageHeight;

主文件

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{

				
		}
	}
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读