我试图制作一个带圆角和渐变的矩形。我有这段代码:
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)实际上是从舞台中挑选的颜色,所以如果可以轻松地将其抛到那里而不会使上述问题的答案复杂化,请随意。
答案 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);