1、Graphics 类概述
Graphics 类包含一组可用来创建矢量形状的方法。支持绘制的显示对象包括 Sprite 和 Shape 对象。这些类中的每一个类都包括 graphics
属性,该属性是一个 Graphics 对象。以下是为便于使用而提供的一些辅助函数:drawRect()
、drawRoundRect()
、drawCircle()
和 drawEllipse()
。
无法通过 ActionScript 代码直接创建 Graphics 对象。如果调用 new Graphics()
,则会引发异常。
Graphics 类是最终类;无法从其派生子类。
2、Graphics 一点示例:
下面定义了一个GraphicsExample 类,使用 GraphicsExample 类绘制圆形、圆角矩形和正方形。执行下列步骤可完成该任务:
- 声明
size
属性以备日后在确定每个形状的大小时使用。 - 声明以下属性:将背景色设置为橙色、将边框颜色设置为深灰色、将边框大小设置为 0 个像素、将角半径设置为 9 个像素并将舞台边缘与其他对象之间的间距设置为 5 个像素。
- 使用在前面步骤中声明的属性以及使用 Graphics 类的内置方法,可在坐标 x = 0, y = 0 处绘制圆形、圆角矩形和正方形。
- 沿舞台顶部重新绘制每个形状,起点为 x = 5,y = 5,各形状之间的间隔为 5 个像素。
- package {
- import flash.display.DisplayObject;
- import flash.display.Graphics;
- import flash.display.Shape;
- import flash.display.Sprite;
- public class GraphicsExample extends Sprite {
- private var size:uint = 80;
- private var bgColor:uint = 0xFFCC00;
- private var borderColor:uint = 0x666666;
- private var borderSize:uint = 0;
- private var cornerRadius:uint = 9;
- private var gutter:uint = 5;
- public function GraphicsExample() {
- doDrawCircle();
- doDrawRoundRect();
- doDrawRect();
- refreshLayout();
- }
- private function refreshLayout():void {
- var ln:uint = numChildren;
- var child:DisplayObject;
- var lastChild:DisplayObject = getChildAt(0);
- lastChild.x = gutter;
- lastChild.y = gutter;
- for (var i:uint = 1; i < ln; i++) {
- child = getChildAt(i);
- child.x = gutter + lastChild.x + lastChild.width;
- child.y = gutter;
- lastChild = child;
- }
- }
- private function doDrawCircle():void {
- var child:Shape = new Shape();
- var halfSize:uint = Math.round(size / 2);
- child.graphics.beginFill(bgColor);
- child.graphics.lineStyle(borderSize, borderColor);
- child.graphics.drawCircle(halfSize, halfSize, halfSize);
- child.graphics.endFill();
- addChild(child);
- }
- private function doDrawRoundRect():void {
- var child:Shape = new Shape();
- child.graphics.beginFill(bgColor);
- child.graphics.lineStyle(borderSize, borderColor);
- child.graphics.drawRoundRect(0, 0, size, size, cornerRadius);
- child.graphics.endFill();
- addChild(child);
- }
- private function doDrawRect():void {
- var child:Shape = new Shape();
- child.graphics.beginFill(bgColor);
- child.graphics.lineStyle(borderSize, borderColor);
- child.graphics.drawRect(0, 0, size, size);
- child.graphics.endFill();
- addChild(child);
- }
- }
- }