AS3:beginGradientFIll() 不会使我成为渐变!
我正在尝试用径向渐变渲染一个圆,但我似乎无法弄清楚。
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 没有问题
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);
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
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
试试这个,也许这会对你有帮助:
Try this, it may be this will help you:
您需要一个 Matrix 对象及其
createGradientBox()
方法。我创建了一个名为
RadialGraident
的类,它创建一个Shape
对象,其中包含一个具有径向渐变的圆。您需要做的就是在创建对象时解析半径、颜色、alpha 和比率,如下例所示:You need a
Matrix
object as well as itscreateGradientBox()
method.I've made a class called
RadialGraident
that creates aShape
object with a circle that has a radial gradient. All you need to do is parse the radius, colors, alphas and ratios upon creating the object like in the following example:使用新的矩阵创建渐变框 对象并将新的矩阵对象分配给您的 beginGradientFill
matrix
参数:flash.geom.Matrix.createGradientBox ()
[编辑]:这是一个简单的在线教程,应该有助于解释更多信息:
在 AS3 中以编程方式绘制渐变
create a gradient box with a new Matrix object and assign the new matrix object to your beginGradientFill
matrix
parameter:flash.geom.Matrix.createGradientBox()
[EDIT]: here's a simple online tutorial that should help explain more:
Drawing Gradients Programatically in AS3