带圆角和渐变填充的矩形

时间:2015-11-04 09:01:01

标签: actionscript-3 flash

我试图制作一个带圆角和渐变的矩形。我有这段代码:

import flash.geom.*;
var rect:Shape = new Shape();
rect.graphics.lineStyle(5, 0x00ff00, 0); //(thickness, color, alpha)
var fillType:String = "linear";
var colors:Array = [0x000000, 0xFFFF00,0xFFFFFF];
var alphas:Array=[1,1,1];
var ratios:Array=[0,127,255];
var matrix:Matrix = new Matrix();
matrix.createGradientBox(20, 20, 0, 0, 0);
rect.beginGradientFill(fillType, colors, alphas, ratios, matrix) : Void;
rect.graphics.drawRoundRect(720,450, 213.4, 29.1, 12, 12); 
rect.graphics.endFill();
addChild(rect);

我从这一行收到错误:

rect.beginGradientFill(fillType, colors, alphas, ratios, matrix) : Void;
  

1078:标签必须是简单标识符。

我是一个新手,我所看到的一切似乎都有一堆我不太了解的术语,所以请保持简单。

我希望黄色(FFFF00)实际上是从舞台中挑选的颜色,所以如果可以轻松地将其抛到那里而不会使上述问题的答案复杂化,请随意。

2 个答案:

答案 0 :(得分:0)

在您的代码中,您在同一行中有两个错误:

rect.beginGradientFill(fillType, colors, alphas, ratios, matrix) : Void;

我们使用void(低v,而不是 V oid)来表示在我们定义它时不会返回任何内容的函数的类型,而不是调用那个函数。

然后beginGradientFill()Graphics类的函数,因此它应该与rect.graphics一起使用:

rect.graphics.beginGradientFill(fillType, colors, alphas, ratios, matrix);

然后你的代码就像这样(这是一个例子):

var fillType:String = "linear";
var colors:Array = [0x000000, 0xFFFF00, 0xFF0000];
var alphas:Array=[1, 1, 1];
var ratios:Array=[0, 127, 255];
var matrix:Matrix = new Matrix();
    matrix.createGradientBox(200, 10, 0, 0, 0);

var rect:Shape = new Shape();
    rect.graphics.lineStyle(5, 0x00ff00, 0); 
    rect.graphics.beginGradientFill(fillType, colors, alphas, ratios, matrix)
    rect.graphics.drawRoundRect(0, 0, 200, 200, 12, 12); 
    rect.graphics.endFill();
addChild(rect);

有关渐变的更多信息,请查看Graphics.beginGradientFill()creating gradient lines and fills ...

希望可以提供帮助。

答案 1 :(得分:-1)

前言:之前没有看到评论,但这是正确的解决方案。

断点在这里:

rect.beginGradientFill(fillType, colors, alphas, ratios, matrix) : Void;

函数调用不应具有“:Void”标识符。这是在最初编写函数时使用的。

试试这个:

rect.beginGradientFill(fillType, colors, alphas, ratios, matrix);
相关问题