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() 方法会清除填充。
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
- 参数
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
- 参数
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
- 参数
drawCircle()
public drawCircle(x:number,y:number,radius:number):void
绘制一个圆。
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 参数
drawEllipse()
public drawEllipse(x:number,y:number,width:number,height:number):void
绘制一个椭圆。
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 参数
drawRect()
public drawRect(x:number,y:number,width:number,height:number):void
绘制一个矩形
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 参数
drawRoundRect()
public drawRoundRect(x:number,y:number,width:number,height:number,ellipseWidth:number,ellipseHeight:number):void
绘制一个圆角矩形。
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 参数
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
- 参数
moveTo()
public moveTo(x:number,y:number):void
将当前绘图位置移动到 (x, y)。如果缺少任何一个参数,则此方法将失败,并且当前绘图位置不改变。
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 参数
示例
/*
* 以下示例演示了使用 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);
}
}