跳到主要内容

egret.Graphics

   egret

   public class Graphics

继承    egret.Graphics → egret.HashObject

Graphics 类包含一组可用来创建矢量形状的方法。支持绘制的显示对象包括 Sprite 和 Shape 对象。这些类中的每一个类都包括 graphics 属性,该属性是一个 Graphics 对象。以下是为便于使用而提供的一些辅助函数:drawRect()、drawRoundRect()、drawCircle() 和 drawEllipse()。

公共属性

属性

公共方法

方法
Graphics()
创建一个 Graphics 对象
beginFill(color:number,alpha:number):void
指定一种简单的单一颜色填充,在绘制时该填充将在随后对其他 Graphics 方法(如 lineTo() 或 drawCircle())的调用中使用
beginGradientFill(type:string,colors:number[],alphas:number[],ratios:number[],matrix:egret.Matrix):void
指定一种渐变填充,用于随后调用对象的其他 Graphics 方法(如 lineTo() 或 drawCircle())
clear():void
清除绘制到此 Graphics 对象的图形,并重置填充和线条样式设置
cubicCurveTo(controlX1:number,controlY1:number,controlX2:number,controlY2:number,anchorX:number,anchorY:number):void
从当前绘图位置到指定的锚点绘制一条三次贝塞尔曲线
curveTo(controlX:number,controlY:number,anchorX:number,anchorY:number):void
使用当前线条样式和由 (controlX, controlY) 指定的控制点绘制一条从当前绘图位置开始到 (anchorX, anchorY) 结束的二次贝塞尔曲线
drawArc(x:number,y:number,radius:number,startAngle:number,endAngle:number,anticlockwise:boolean):void
绘制一段圆弧路径
drawCircle(x:number,y:number,radius:number):void
绘制一个圆
drawEllipse(x:number,y:number,width:number,height:number):void
绘制一个椭圆
drawRect(x:number,y:number,width:number,height:number):void
绘制一个矩形
drawRoundRect(x:number,y:number,width:number,height:number,ellipseWidth:number,ellipseHeight:number):void
绘制一个圆角矩形
endFill():void
对从上一次调用 beginFill()方法之后添加的直线和曲线应用填充
lineStyle(thickness:number,color:number,alpha:number,pixelHinting:boolean,scaleMode:string,caps:string,joints:string,miterLimit:number,lineDash:number[]):void
指定一种线条样式以用于随后对 lineTo() 或 drawCircle() 等 Graphics 方法的调用
lineTo(x:number,y:number):void
使用当前线条样式绘制一条从当前绘图位置开始到 (x, y) 结束的直线;当前绘图位置随后会设置为 (x, y)
moveTo(x:number,y:number):void
将当前绘图位置移动到 (x, y)

属性详细信息

方法详细信息

Graphics()

public Graphics()

创建一个 Graphics 对象。

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native

beginFill()

public beginFill(color:number,alpha:number):void

指定一种简单的单一颜色填充,在绘制时该填充将在随后对其他 Graphics 方法(如 lineTo() 或 drawCircle())的调用中使用。调用 clear() 方法会清除填充。

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native
  • 参数
    • color:number - 填充的颜色
    • alpha:number - 填充的 Alpha 值

beginGradientFill()

public beginGradientFill(type:string,colors:number[],alphas:number[],ratios:number[],matrix:egret.Matrix):void

指定一种渐变填充,用于随后调用对象的其他 Graphics 方法(如 lineTo() 或 drawCircle())。调用 clear() 方法会清除填充。

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native
  • 参数
    • type:string - 用于指定要使用哪种渐变类型的 GradientType 类的值:GradientType.LINEAR 或 GradientType.RADIAL。
    • colors:number[] - 渐变中使用的 RGB 十六进制颜色值的数组(例如,红色为 0xFF0000,蓝色为 0x0000FF,等等)。对于每种颜色,请在 alphas 和 ratios 参数中指定对应值。
    • alphas:number[] - colors 数组中对应颜色的 alpha 值数组。
    • ratios:number[] - 颜色分布比率的数组。有效值为 0 到 255。
    • matrix:egret.Matrix - 一个由 egret.Matrix 类定义的转换矩阵。egret.Matrix 类包括 createGradientBox() 方法,通过该方法可以方便地设置矩阵,以便与 beginGradientFill() 方法一起使用

clear()

public clear():void

清除绘制到此 Graphics 对象的图形,并重置填充和线条样式设置。

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native

cubicCurveTo()

public cubicCurveTo(controlX1:number,controlY1:number,controlX2:number,controlY2:number,anchorX:number,anchorY:number):void

从当前绘图位置到指定的锚点绘制一条三次贝塞尔曲线。三次贝塞尔曲线由两个锚点和两个控制点组成。该曲线内插这两个锚点,并向两个控制点弯曲。

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native
  • 参数
    • controlX1:number - 指定首个控制点相对于父显示对象的注册点的水平位置。
    • controlY1:number - 指定首个控制点相对于父显示对象的注册点的垂直位置。
    • controlX2:number - 指定第二个控制点相对于父显示对象的注册点的水平位置。
    • controlY2:number - 指定第二个控制点相对于父显示对象的注册点的垂直位置。
    • anchorX:number - 指定锚点相对于父显示对象的注册点的水平位置。
    • anchorY:number - 指定锚点相对于父显示对象的注册点的垂直位置。

curveTo()

public curveTo(controlX:number,controlY:number,anchorX:number,anchorY:number):void

使用当前线条样式和由 (controlX, controlY) 指定的控制点绘制一条从当前绘图位置开始到 (anchorX, anchorY) 结束的二次贝塞尔曲线。当前绘图位置随后设置为 (anchorX, anchorY)。如果在调用 moveTo() 方法之前调用了 curveTo() 方法,则当前绘图位置的默认值为 (0, 0)。如果缺少任何一个参数,则此方法将失败,并且当前绘图位置不改变。绘制的曲线是二次贝塞尔曲线。二次贝塞尔曲线包含两个锚点和一个控制点。该曲线内插这两个锚点,并向控制点弯曲。

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native
  • 参数
    • controlX:number - 一个数字,指定控制点相对于父显示对象注册点的水平位置。
    • controlY:number - 一个数字,指定控制点相对于父显示对象注册点的垂直位置。
    • anchorX:number - 一个数字,指定下一个锚点相对于父显示对象注册点的水平位置。
    • anchorY:number - 一个数字,指定下一个锚点相对于父显示对象注册点的垂直位置。

drawArc()

public drawArc(x:number,y:number,radius:number,startAngle:number,endAngle:number,anticlockwise:boolean):void

绘制一段圆弧路径。圆弧路径的圆心在 (x, y) 位置,半径为 r ,根据anticlockwise (默认为顺时针)指定的方向从 startAngle 开始绘制,到 endAngle 结束。

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native
  • 参数
    • x:number - 圆弧中心(圆心)的 x 轴坐标。
    • y:number - 圆弧中心(圆心)的 y 轴坐标。
    • radius:number - 圆弧的半径。
    • startAngle:number - 圆弧的起始点, x轴方向开始计算,单位以弧度表示。
    • endAngle:number - 圆弧的终点, 单位以弧度表示。
    • anticlockwise:boolean - 如果为 true,逆时针绘制圆弧,反之,顺时针绘制。

drawCircle()

public drawCircle(x:number,y:number,radius:number):void

绘制一个圆。

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native
  • 参数
    • x:number - 圆心相对于父显示对象注册点的 x 位置(以像素为单位)。
    • y:number - 相对于父显示对象注册点的圆心的 y 位置(以像素为单位)。
    • radius:number - 圆的半径(以像素为单位)。

drawEllipse()

public drawEllipse(x:number,y:number,width:number,height:number):void

绘制一个椭圆。

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native
  • 参数
    • x:number - 一个表示相对于父显示对象注册点的水平位置的数字(以像素为单位)。
    • y:number - 一个表示相对于父显示对象注册点的垂直位置的数字(以像素为单位)。
    • width:number - 矩形的宽度(以像素为单位)。
    • height:number - 矩形的高度(以像素为单位)。

drawRect()

public drawRect(x:number,y:number,width:number,height:number):void

绘制一个矩形

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native
  • 参数
    • x:number - 圆心相对于父显示对象注册点的 x 位置(以像素为单位)。
    • y:number - 相对于父显示对象注册点的圆心的 y 位置(以像素为单位)。
    • width:number - 矩形的宽度(以像素为单位)。
    • height:number - 矩形的高度(以像素为单位)。

drawRoundRect()

public drawRoundRect(x:number,y:number,width:number,height:number,ellipseWidth:number,ellipseHeight:number):void

绘制一个圆角矩形。

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native
  • 参数
    • x:number - 圆心相对于父显示对象注册点的 x 位置(以像素为单位)。
    • y:number - 相对于父显示对象注册点的圆心的 y 位置(以像素为单位)。
    • width:number - 矩形的宽度(以像素为单位)。
    • height:number - 矩形的高度(以像素为单位)。
    • ellipseWidth:number - 用于绘制圆角的椭圆的宽度(以像素为单位)。
    • ellipseHeight:number - 用于绘制圆角的椭圆的高度(以像素为单位)。 (可选)如果未指定值,则默认值与为 ellipseWidth 参数提供的值相匹配。

endFill()

public endFill():void

对从上一次调用 beginFill()方法之后添加的直线和曲线应用填充。

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native

lineStyle()

public lineStyle(thickness:number,color:number,alpha:number,pixelHinting:boolean,scaleMode:string,caps:string,joints:string,miterLimit:number,lineDash:number[]):void

指定一种线条样式以用于随后对 lineTo() 或 drawCircle() 等 Graphics 方法的调用。

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native
  • 参数
    • thickness:number - 一个整数,以点为单位表示线条的粗细,有效值为 0 到 255。如果未指定数字,或者未定义该参数,则不绘制线条。如果传递的值小于 0,则默认值为 0。值 0 表示极细的粗细;最大粗细为 255。如果传递的值大于 255,则默认值为 255。
    • color:number - 线条的十六进制颜色值(例如,红色为 0xFF0000,蓝色为 0x0000FF 等)。如果未指明值,则默认值为 0x000000(黑色)。可选。
    • alpha:number - 表示线条颜色的 Alpha 值的数字;有效值为 0 到 1。如果未指明值,则默认值为 1(纯色)。如果值小于 0,则默认值为 0。如果值大于 1,则默认值为 1。
    • pixelHinting:boolean - 布尔型值,指定是否提示笔触采用完整像素。它同时影响曲线锚点的位置以及线条笔触大小本身。在 pixelHinting 设置为 true 的情况下,线条宽度会调整到完整像素宽度。在 pixelHinting 设置为 false 的情况下,对于曲线和直线可能会出现脱节。
    • scaleMode:string - 用于指定要使用的比例模式
    • caps:string - 用于指定线条末端处端点类型的 CapsStyle 类的值。默认值:CapsStyle.ROUND
    • joints:string - 指定用于拐角的连接外观的类型。默认值:JointStyle.ROUND
    • miterLimit:number - 用于表示剪切斜接的极限值的数字。
    • lineDash:number[] - 设置虚线样式。

lineTo()

public lineTo(x:number,y:number):void

使用当前线条样式绘制一条从当前绘图位置开始到 (x, y) 结束的直线;当前绘图位置随后会设置为 (x, y)。

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native
  • 参数
    • x:number - 一个表示相对于父显示对象注册点的水平位置的数字(以像素为单位)。
    • y:number - 一个表示相对于父显示对象注册点的垂直位置的数字(以像素为单位)。

moveTo()

public moveTo(x:number,y:number):void

将当前绘图位置移动到 (x, y)。如果缺少任何一个参数,则此方法将失败,并且当前绘图位置不改变。

  • 支持版本:Egret 2.4
  • 运行平台:Web,Native
  • 参数
    • x:number - 一个表示相对于父显示对象注册点的水平位置的数字(以像素为单位)。
    • y:number - 一个表示相对于父显示对象注册点的垂直位置的数字(以像素为单位)。

示例

/*
* 以下示例演示了使用 Graphics 类绘制圆形、圆角矩形和正方形。
*/
class GraphicsExample extends egret.DisplayObjectContainer {
public constructor() {
super();
this.drawCircle();
this.drawRoundRect();
this.drawRect();
}
private drawCircle():void {
var shape:egret.Shape = new egret.Shape();
shape.graphics.beginFill(0xff0000);
shape.graphics.drawCircle(0, 0, 100);
shape.graphics.endFill();
this.addChild(shape);
}
private drawRoundRect():void {
var shape:egret.Shape = new egret.Shape();
shape.graphics.beginFill(0x00ff00);
shape.graphics.drawRoundRect(100, 100, 100, 100, 10, 10);
shape.graphics.endFill();
this.addChild(shape);
}
private drawRect():void {
var shape:egret.Shape = new egret.Shape();
shape.graphics.beginFill(0x0000ff);
shape.graphics.drawRect(200, 200, 100, 100);
shape.graphics.endFill();
this.addChild(shape);
}
}