您的位置:首页 > 其它

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

2011-09-04 23:35 441 查看
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 线性

            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{

}
}
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息