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

本文详细介绍如何使用ActionScript 3.0中的beginGradientFill函数实现水晶按钮效果,包括线性和放射状渐变填充的使用方法及参数设置,并提供具体实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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,0,0);
			matrix.translate(-50,-35);
			var colors:Array=[0xA7E600,0x078914,0x00552F];
			var alphas:Array=[1,1,1];
			var ratios:Array=[0x00,0xff,0xff];
			
			earth=new Sprite();
			earth.graphics.lineStyle();
			earth.graphics.beginGradientFill(GradientType.RADIAL,colors,alphas,ratios,matrix);
			earth.graphics.drawCircle(0,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,100,0,0,0);	
			matix.translate(-50,-25);
			matix.rotate(1.20);
			mySprite.graphics .beginGradientFill(GradientType.LINEAR,color,alphaAr,rotios,matix)
			mySprite.graphics.drawCircle(0,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,100,0,0,0);	
			matix.translate(-50,-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{

				
		}
	}
}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值