AS3:beginGradientFIll() 不会让我变成渐变! [英] AS3: beginGradientFIll() doesn't make me a gradient!

查看:29
本文介绍了AS3:beginGradientFIll() 不会让我变成渐变!的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图用径向渐变渲染一个圆,但我似乎无法弄清楚.

I'm trying to render a circle with a radial gradient but I can't seem to figure it out.

var bkgdGrad:Shape = new Shape();
bkgdGrad.graphics.beginGradientFill(GradientType.RADIAL, [0x0000FF, 0x00FF00], [1, 1], [0, 255],null,"pad");
bkgdGrad.graphics.drawCircle(0,0,r+200);
bkgdGrad.graphics.endFill();
this.addChild(bkgdGrad);

上面的代码为我呈现了一个实心的绿色圆圈.如果我将颜色后的数组更改为 [1,0](alpha 数组),我会得到一个透明的填充.我似乎无法让 flash 绘制径向渐变,上述对于 GradientType.LINEAR 没有问题

The above code renders a solid green circle for me. If I change the array after the colors to [1,0] (the alpha array) I get a transparent fill. I can't seem to get flash to draw a radial gradient, the above works no problem for GradientType.LINEAR

推荐答案

试试这个,它可能对你有帮助:

Try this, it may be this will help you:

package  
{  
    import flash.display.Sprite;  
    import flash.display.GradientType;  
    import flash.geom.Matrix;  

    public class RadialGradient extends Sprite  
    {  
        private var gType:String;  
        private var matrix:Matrix;  

        private var bound:Sprite;  

        public function RadialGradient()  
        {  
            var gType:String = GradientType.RADIAL;  

            var matrix:Matrix = new Matrix();  
            matrix.createGradientBox(550,400,0,0,0);  

            var gColors:Array = [0x0000FF, 0x00FF00];  
            var gAlphas:Array = [1,1];  
            var gRatio:Array = [0,255];  

            var bound:Sprite = new Sprite();  
            bound.graphics.beginGradientFill(gType,gColors,gAlphas,gRatio,matrix);  
            bound.graphics.drawCircle(0,0,r+200);
            bound.x = bound.y = 0;  
            addChild(bound);  
        }  
    }  
}  

这篇关于AS3:beginGradientFIll() 不会让我变成渐变!的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆