本文介绍了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);
以上code呈现了坚实的绿色圆圈我。如果我改变颜色为[1,0](阿尔法阵列)后,阵列我得到一个透明填充。我似乎无法得到快速绘制径向渐变,上述工程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()不会让我一个梯度!的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!