使用内置方法绘制形状

Flash Player 9 和更高版本,Adobe AIR 1.0 和更高版本

为了便于绘制常见形状(如圆、椭圆、矩形以及带圆角的矩形),ActionScript 3.0 中提供了用于绘制这些常见形状的方法。它们是 Graphics 类的 drawCircle()drawEllipse()drawRect()drawRoundRect() 方法。这些方法可用于替代 lineTo()curveTo() 方法。但要注意,在调用这些方法之前,您仍需指定线条和填充样式。

以下示例重新创建绘制红色、绿色以及蓝色正方形的示例,其宽度和高度均为 100 个像素。以下代码使用 drawRect() 方法,并且还指定了填充颜色的 Alpha 为 50% (0.5):

var squareSize:uint = 100; 
var square:Shape = new Shape(); 
square.graphics.beginFill(0xFF0000, 0.5); 
square.graphics.drawRect(0, 0, squareSize, squareSize); 
square.graphics.beginFill(0x00FF00, 0.5); 
square.graphics.drawRect(200, 0, squareSize, squareSize); 
square.graphics.beginFill(0x0000FF, 0.5); 
square.graphics.drawRect(400, 0, squareSize, squareSize); 
square.graphics.endFill(); 
this.addChild(square);

在 Sprite 或 MovieClip 对象中,使用 graphics 属性创建的绘制内容始终出现在该对象包含的所有子级显示对象的后面。另外,graphics 属性内容不是单独的显示对象,因此,它不会出现在 Sprite 或 MovieClip 对象的子级列表中。例如,以下 Sprite 对象使用其 graphics 属性来绘制圆,并且其子级显示对象列表中包含一个 TextField 对象:

var mySprite:Sprite = new Sprite(); 
mySprite.graphics.beginFill(0xFFCC00); 
mySprite.graphics.drawCircle(30, 30, 30); 
var label:TextField = new TextField(); 
label.width = 200; 
label.text = "They call me mellow yellow..."; 
label.x = 20; 
label.y = 20; 
mySprite.addChild(label); 
this.addChild(mySprite);

请注意,TextField 将出现在使用 graphics 对象绘制的圆的上面。