flash.display
public final class Graphics
继承Graphics Inheritance Object

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

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

无法通过 ActionScript 代码直接创建 Graphics 对象。 如果调用 new Graphics(),则会引发异常。

Graphics 类是最终类;无法从其派生子类。

查看示例

另请参见

绘图 API 使用基础知识



公共 属性
 属性定义方
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
 Inheritedprototype : Object
[static] 对类或函数对象的原型对象的引用。
Object
公共 方法
 方法定义方
  
beginBitmapFill(bitmap:BitmapData, matrix:Matrix = null, repeat:Boolean = true, smooth:Boolean = false):void
用位图图像填充绘图区。
Graphics
  
beginFill(color:uint, alpha:Number = 1.0):void
指定一种简单的单一颜色填充,Flash Player 可将该填充用于随后调用对象的其它 Graphics 方法(如 lineTo() 或 drawCircle())。
Graphics
  
beginGradientFill(type:String, colors:Array, alphas:Array, ratios:Array, matrix:Matrix = null, spreadMethod:String = "pad", interpolationMethod:String = "rgb", focalPointRatio:Number = 0):void
指定一种渐变填充,Flash Player 可将该填充用于随后调用对象的其它 Graphics 方法(如 lineTo() 或 drawCircle())。
Graphics
  
清除绘制到此 Graphics 对象的图形,并重置填充和线条样式设置。
Graphics
  
curveTo(controlX:Number, controlY:Number, anchorX:Number, anchorY:Number):void
使用当前线条样式和由 (controlX, controlY) 指定的控制点绘制一条从当前绘画位置开始到 (anchorX, anchorY) 结束的曲线。
Graphics
  
绘制一个圆。
Graphics
  
drawEllipse(x:Number, y:Number, width:Number, height:Number):void
绘制一个椭圆。
Graphics
  
drawRect(x:Number, y:Number, width:Number, height:Number):void
绘制一个矩形。
Graphics
  
drawRoundRect(x:Number, y:Number, width:Number, height:Number, ellipseWidth:Number, ellipseHeight:Number):void
绘制一个圆角矩形。
Graphics
  
对从上一次调用 beginFill()、beginGradientFill() 或 beginBitmapFill() 方法之后添加的直线和曲线应用填充。
Graphics
 Inherited
指示对象是否已经定义了指定的属性。
Object
 Inherited
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
  
lineGradientStyle(type:String, colors:Array, alphas:Array, ratios:Array, matrix:Matrix = null, spreadMethod:String = "pad", interpolationMethod:String = "rgb", focalPointRatio:Number = 0):void
指定一种线条样式的渐变,Flash Player 可将该渐变用于随后调用对象的其它 Graphics 方法(如 lineTo() 或 drawCircle())。
Graphics
  
lineStyle(thickness:Number, color:uint = 0, alpha:Number = 1.0, pixelHinting:Boolean = false, scaleMode:String = "normal", caps:String = null, joints:String = null, miterLimit:Number = 3):void
指定一种线条样式,Flash 可将该样式用于随后调用对象的其它 Graphics 方法(如 lineTo() 或 drawCircle())。
Graphics
  
使用当前线条样式绘制一条从当前绘画位置开始到 (x, y) 结束的直线;当前绘画位置随后会设置为 (x, y)。
Graphics
  
将当前绘画位置移动到 (x, y)。
Graphics
 Inherited
指示指定的属性是否存在、是否可枚举。
Object
 Inherited
设置循环操作动态属性的可用性。
Object
 Inherited
返回指定对象的字符串表示形式。
Object
 Inherited
返回指定对象的原始值。
Object
方法详细信息
beginBitmapFill()方法
public function beginBitmapFill(bitmap:BitmapData, matrix:Matrix = null, repeat:Boolean = true, smooth:Boolean = false):void

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

用位图图像填充绘图区。 可以重复或平铺位图以填充该区域。 该填充将保持有效,直到您调用 beginFill()beginBitmapFill()beginGradientFill() 方法。 调用 clear() 方法会清除填充。

在调用 endFill() 方法之前,Flash Player 不会呈现填充。

参数

bitmap:BitmapData — 包含要显示的位的透明或不透明位图图像。
 
matrix:Matrix (default = null) — 一个 matrix 对象(属于 flash.geom.Matrix 类),您可以使用它在位图上定义转换。 例如,您可以使用以下矩阵将位图旋转 45 度(pi/4 弧度):
  matrix = new flash.geom.Matrix(); 
  matrix.rotate(Math.PI/4);
  
 
repeat:Boolean (default = true) — 如果为 true,则位图图像按平铺模式重复。 如果为 false,位图图像不会重复,并且位图边缘将用于所有扩展出位图的填充区域。

例如,请考虑下列位图(20 x 20 像素的棋盘图案):

repeat 设置为 true 时(如下例所示),位图填充将重复位图:

repeat 设置为 false 时,位图填充将在位图外的填充区域中使用边缘像素:

 
smooth:Boolean (default = false) — 如果为 false,则使用最近邻点算法来呈现放大的位图图像,而且该图像看起来是像素化的。 如果为 true,则使用双线性算法来呈现放大的位图图像。 使用最近邻点算法呈现通常较快。

另请参见

beginFill()方法 
public function beginFill(color:uint, alpha:Number = 1.0):void

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

指定一种简单的单一颜色填充,Flash Player 可将该填充用于随后调用对象的其它 Graphics 方法(如 lineTo()drawCircle())。 该填充将保持有效,直到您调用 beginFill()beginBitmapFill()beginGradientFill() 方法。 调用 clear() 方法会清除填充。

在调用 endFill() 方法之前,Flash Player 不会呈现填充。

参数

color:uint — 填充的颜色 (0xRRGGBB)。
 
alpha:Number (default = 1.0) — 填充的 Alpha 值(从 0.0 到 1.0)。

另请参见

beginGradientFill()方法 
public function beginGradientFill(type:String, colors:Array, alphas:Array, ratios:Array, matrix:Matrix = null, spreadMethod:String = "pad", interpolationMethod:String = "rgb", focalPointRatio:Number = 0):void

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

指定一种渐变填充,Flash Player 可将该填充用于随后调用对象的其它 Graphics 方法(如 lineTo()drawCircle())。 该填充将保持有效,直到您调用 beginFill()beginBitmapFill()beginGradientFill() 方法。 调用 clear() 方法会清除填充。

在调用 endFill() 方法之前,Flash Player 不会呈现填充。

参数

type:String — 用于指定要使用哪种渐变类型的 GradientType 类的值:GradientType.LINEARGradientType.RADIAL
 
colors:Array — 要在渐变中使用的 RGB 十六进制颜色值数组(例如,红色为 0xFF0000,蓝色为 0x0000FF,等等)。 可以至多指定 15 种颜色。 对于每种颜色,请确保在 alphas 和 ratios 参数中指定对应的值。
 
alphas:Array — colors 数组中对应颜色的 alpha 值数组;有效值为 0 到 1。 如果值小于 0,则默认值为 0。 如果值大于 1,则默认值为 1。
 
ratios:Array — 颜色分布比例的数组;有效值为 0 到 255。 该值定义 100% 采样的颜色所在位置的宽度百分比。 值 0 表示渐变框中的左侧位置,255 表示渐变框中的右侧位置。

注意:该值表示渐变框中的位置,而不是最终渐变的坐标空间,坐标空间可能比渐变框宽或窄。 为 colors 参数中的每个值指定一个值。

例如,对于包括蓝和绿两种颜色的线性渐变,下例显示了基于不同 ratios 数组值的渐变中的颜色配比:

ratios渐变
[0, 127]
[0, 255]
[127, 255]

数组中的值必须持续增加;例如,[0, 63, 127, 190, 255]

 
matrix:Matrix (default = null) — 一个由 flash.geom.Matrix 类定义的转换矩阵。 flash.geom.Matrix 类包括 createGradientBox() 方法,通过该方法可以方便地设置矩阵,以便与 beginGradientFill() 方法一起使用。
 
spreadMethod:String (default = "pad") — 用于指定要使用哪种 spread 方法的 SpreadMethod 类的值:SpreadMethod.PADSpreadMethod.REFLECTSpreadMethod.REPEAT

例如,请考虑两种颜色之间的简单线性渐变:

  import flash.geom.*
  import flash.display.*
  var fillType:String = GradientType.LINEAR;
  var colors:Array = [0xFF0000, 0x0000FF];
  var alphas:Array = [100, 100];
  var ratios:Array = [0x00, 0xFF];
  var matr:Matrix = new Matrix();
  matr.createGradientBox(20, 20, 0, 0, 0);
  var spreadMethod:String = SpreadMethod.PAD;
  this.graphics.beginGradientFill(fillType, colors, alphas, ratios, matr, spreadMethod);  
  this.graphics.drawRect(0,0,100,100);
  

此示例将 SpreadMethod.PAD 用于 spread 方法,并且渐变填充看起来将类似于下图:

如果将 SpreadMethod.REFLECT 用于 spread 方法,则渐变填充看起来将类似于下图:

如果将 SpreadMethod.REPEAT 用于 spread 方法,则渐变填充看起来将类似于下图:

 
interpolationMethod:String (default = "rgb") — 用于指定要使用哪个值的 InterpolationMethod 类的值:InterpolationMethod.linearRGBInterpolationMethod.RGB

例如,假设有两种颜色之间的简单线性渐变(spreadMethod 参数设置为 SpreadMethod.REFLECT)。 不同的插值方法对外观的影响如下所示:

InterpolationMethod.LINEAR_RGBInterpolationMethod.RGB
 
focalPointRatio:Number (default = 0) — 一个控制渐变的焦点位置的数字。 0 表示焦点位于中心。 1 表示焦点位于渐变圆的一条边界上。 -1 表示焦点位于渐变圆的另一条边界上。 小于 -1 或大于 1 的值将舍入为 -1 或 1。 例如,下例显示 focalPointRatio 设置为 0.75:


引发
ArgumentError — 如果 type 参数无效。

另请参见

clear()方法 
public function clear():void

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

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

curveTo()方法 
public function curveTo(controlX:Number, controlY:Number, anchorX:Number, anchorY:Number):void

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

通过由 (controlX, controlY) 指定的控制点,使用当前线条样式绘制一条从当前绘画位置开始到 (anchorX, anchorY) 结束的曲线。 当前绘画位置随后设置为 (anchorX, anchorY)。 如果正在其中绘制的影片剪辑包含用 Flash 绘画工具创建的内容,则调用 curveTo() 方法将在该内容下面进行绘制。 如果在调用 moveTo() 方法之前调用了 curveTo() 方法,则当前绘画位置的默认值为 (0, 0)。 如果缺少任何一个参数,则此方法将失败,并且当前绘画位置不改变。

绘制的曲线是二次贝塞尔曲线。 二次贝塞尔曲线包含两个锚点和一个控制点。 该曲线内插这两个锚点,并向控制点弯曲。

参数

controlX:Number — 一个数字,指定控制点相对于父显示对象注册点的水平位置。
 
controlY:Number — 一个数字,指定控制点相对于父显示对象注册点的垂直位置。
 
anchorX:Number — 一个数字,指定下一个锚点相对于父显示对象注册点的水平位置。
 
anchorY:Number — 一个数字,指定下一个锚点相对于父显示对象注册点的垂直位置。

drawCircle()方法 
public function drawCircle(x:Number, y:Number, radius:Number):void

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

绘制一个圆。 您必须在调用 drawCircle() 方法之前,通过调用 linestyle()lineGradientStyle()beginFill()beginGradientFill()beginBitmapFill() 方法来设置线条样式和/或填充。

参数

x:Number — 相对于父显示对象注册点的圆心的 x 位置(以像素为单位)。
 
y:Number — 相对于父显示对象注册点的圆心的 y 位置(以像素为单位)。
 
radius:Number — 圆的半径(以像素为单位)。

另请参见

drawEllipse()方法 
public function drawEllipse(x:Number, y:Number, width:Number, height:Number):void

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

绘制一个椭圆。 您必须在调用 drawEllipse() 方法之前,通过调用 linestyle()lineGradientStyle()beginFill()beginGradientFill()beginBitmapFill() 方法来设置线条样式和/或填充。

参数

x:Number — 一个表示相对于父显示对象注册点的水平位置的数字(以像素为单位)。
 
y:Number — 一个表示相对于父显示对象注册点的垂直位置的数字(以像素为单位)。
 
width:Number — 椭圆的宽度(以像素为单位)。
 
height:Number — 椭圆的高度(以像素为单位)。

另请参见

drawRect()方法 
public function drawRect(x:Number, y:Number, width:Number, height:Number):void

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

绘制一个矩形。 您必须在调用 drawRect() 方法之前,通过调用 linestyle()lineGradientStyle()beginFill()beginGradientFill()beginBitmapFill() 方法来设置线条样式和/或填充。

参数

x:Number — 一个表示相对于父显示对象注册点的水平位置的数字(以像素为单位)。
 
y:Number — 一个表示相对于父显示对象注册点的垂直位置的数字(以像素为单位)。
 
width:Number — 矩形的宽度(以像素为单位)。
 
height:Number — 矩形的高度(以像素为单位)。


引发
ArgumentError — 如果 widthheight 参数不是数值 (Number.NaN)。

另请参见

drawRoundRect()方法 
public function drawRoundRect(x:Number, y:Number, width:Number, height:Number, ellipseWidth:Number, ellipseHeight:Number):void

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

绘制一个圆角矩形。 您必须在调用 drawRoundRect() 方法之前,通过调用 linestyle()lineGradientStyle()beginFill()beginGradientFill()beginBitmapFill() 方法来设置线条样式和/或填充。

参数

x:Number — 一个表示相对于父显示对象注册点的水平位置的数字(以像素为单位)。
 
y:Number — 一个表示相对于父显示对象注册点的垂直位置的数字(以像素为单位)。
 
width:Number — 圆角矩形的宽度(以像素为单位)。
 
height:Number — 圆角矩形的高度(以像素为单位)。
 
ellipseWidth:Number — 用于绘制圆角的椭圆的宽度(以像素为单位)。
 
ellipseHeight:Number — 用于绘制圆角的椭圆的高度(以像素为单位)。 (可选)如果未指定值,则默认值与为 ellipseWidth 参数提供的值相匹配。


引发
ArgumentError — 如果 widthheightellipseWidthellipseHeight 参数不是数值 (Number.NaN)。

另请参见

endFill()方法 
public function endFill():void

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

对从上一次调用 beginFill()beginGradientFill()beginBitmapFill() 方法之后添加的直线和曲线应用填充。 Flash 使用的是对 beginFill()beginGradientFill()beginBitmapFill() 方法的先前调用中指定的填充。 如果当前绘画位置不等于 moveTo() 方法中指定的上一个位置,而且定义了填充,则用线条闭合该路径,然后进行填充。

另请参见

lineGradientStyle()方法 
public function lineGradientStyle(type:String, colors:Array, alphas:Array, ratios:Array, matrix:Matrix = null, spreadMethod:String = "pad", interpolationMethod:String = "rgb", focalPointRatio:Number = 0):void

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

指定一种线条样式的渐变,Flash Player 可将该渐变用于随后调用对象的其它 Graphics 方法(如 lineTo()drawCircle())。 线条样式仍然有效,直到使用不同的参数调用 lineStyle() 方法或 lineGradientStyle() 方法为止。 可以在绘制路径的中间调用 lineGradientStyle() 方法以为路径中的不同线段指定不同的样式。

在调用 lineGradientStyle() 之前调用 lineStyle() 以启用笔触,否则线条样式的值仍然是 undefined

调用 clear() 会将线条样式设置回 undefined

参数

type:String — 用于指定要使用哪种渐变类型的 GradientType 类的值:GradientType.LINEAR 或 GradientType.RADIAL。
 
colors:Array — 要在渐变中使用的 RGB 十六进制颜色值数组(例如,红色为 0xFF0000,蓝色为 0x0000FF 等等)。
 
alphas:Arraycolors 数组中对应颜色的 alpha 值数组;有效值为 0 到 100。 如果值小于 0,Flash Player 将使用 0。 如果值大于 100,Flash Player 将使用 100。
 
ratios:Array — 颜色分布比率的数组;有效值为 0 到 255。 该值定义 100% 采样的颜色所在位置的宽度百分比。 值 0 表示渐变框中的左侧位置,255 表示渐变框中的右侧位置。 该值表示渐变框中的位置,而不是最终渐变的坐标空间,坐标空间可能比渐变框宽或窄。 为 colors 参数中的每个值指定一个值。

例如,对于包含蓝和绿两种颜色的线性渐变,下图显示了基于不同 ratios 数组值的颜色配比:

ratios渐变
[0, 127]
[0, 255]
[127, 255]

数组中的值必须持续增加;例如,[0, 63, 127, 190, 255]

 
matrix:Matrix (default = null) — 一个由 flash.geom.Matrix 类定义的转换矩阵。 flash.geom.Matrix 类包括 createGradientBox() 方法,通过该方法可以方便地设置矩阵,以便与 lineGradientStyle() 方法一起使用。
 
spreadMethod:String (default = "pad") — 用于指定要使用哪种 spread 方法的 SpreadMethod 类的值:

SpreadMethod.PADSpreadMethod.REFLECTSpreadMethod.REPEAT

 
interpolationMethod:String (default = "rgb") — 用于指定要使用哪个值的 InterpolationMethod 类的值。 例如,假设有两种颜色之间的简单线性渐变(spreadMethod 参数设置为 SpreadMethod.REFLECT)。 不同的插值方法对外观的影响如下所示:

InterpolationMethod.LINEAR_RGBInterpolationMethod.RGB

 
focalPointRatio:Number (default = 0) — 一个控制渐变的焦点位置的数字。 值 0 表示焦点位于中心。 值 1 表示焦点位于渐变圆的一条边界上。 值 -1 表示焦点位于渐变圆的另一条边界上。 小于 -1 或大于 1 的值将舍入为 -1 或 1。 下列图像显示 focalPointRatio 为 -0.75 的渐变:

另请参见

lineStyle()方法 
public function lineStyle(thickness:Number, color:uint = 0, alpha:Number = 1.0, pixelHinting:Boolean = false, scaleMode:String = "normal", caps:String = null, joints:String = null, miterLimit:Number = 3):void

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

指定一种线条样式,Flash 可将该样式用于随后调用对象的其它 Graphics 方法(如 lineTo()drawCircle())。 线条样式仍然有效,直到使用不同的参数调用 lineGradientStyle() 方法或 lineStyle() 方法为止。 可以在绘制路径的中间调用 lineStyle(),以便为路径中的不同线段指定不同的样式。

注意:调用 clear() 方法会将线条样式设置回 undefined

参数

thickness:Number — 一个整数,以磅为单位表示线条的粗细;有效值为 0 到 255。 如果未指定数字,或者未定义该参数,则不绘制线条。 如果传递的值小于 0,则默认值为 0。 值 0 表示极细的粗细;最大粗细为 255。 如果传递的值大于 255,则默认值为 255。
 
color:uint (default = 0) — 线条的十六进制颜色值(例如,红色为 0xFF0000,蓝色为 0x0000FF 等)。 如果未指明值,则默认值为 0x000000(黑色)。 可选。
 
alpha:Number (default = 1.0) — 表示线条颜色的 Alpha 值的数字;有效值为 0 到 1。 如果未指明值,则默认值为 1(纯色)。 如果值小于 0,则默认值为 0。 如果值大于 1,则默认值为 1。
 
pixelHinting:Boolean (default = false) — 用于指定是否提示笔触采用完整像素的布尔值。 它同时影响曲线锚点的位置以及线条笔触大小本身。 在 pixelHinting 设置为 true 的情况下,Flash Player 将提示线条宽度采用完整像素宽度。 在 pixelHinting 设置为 false 的情况下,对于曲线和直线可能会出现脱节。 例如,下图显示了 Flash Player 如何呈现两个相同的圆角矩形,不同之处是用于 lineStyle() 方法的 pixelHinting 参数设置不同(将图像放大 200% 以强调差异):

如果未提供值,则线条不使用像素提示。

 
scaleMode:String (default = "normal") — 用于指定要使用哪种缩放模式的 LineScaleMode 类的值:
  • LineScaleMode.NORMAL -- 在缩放对象时总是缩放线条的粗细(默认值)。
  • LineScaleMode.NONE -- 从不缩放线条粗细。
  • LineScaleMode.VERTICAL -- 如果 垂直缩放对象,则不缩放线条粗细。 例如,考虑下面的圆形,它们是用一个像素的线条绘制的,每个圆的 scaleMode 参数都被设置为 LineScaleMode.VERTICAL。 左边的圆仅在垂直方向上缩放,而右边的圆则同时在垂直和水平方向上缩放:

  • LineScaleMode.HORIZONTAL -- 如果 水平缩放对象,则不缩放线条粗细。 例如,考虑下面的圆形,它们是用一个像素的线条绘制的,每个圆的 scaleMode 参数都被设置为 LineScaleMode.HORIZONTAL。 左边的圆仅在水平方向上缩放,而右边的圆则同时在垂直和水平方向上缩放:

 
caps:String (default = null) — 用于指定线条末端处端点类型的 CapsStyle 类的值。 有效值为:CapsStyle.NONECapsStyle.ROUNDCapsStyle.SQUARE。 如果未指示值,则 Flash 使用圆头端点。

例如,以下图示显示了不同的 capsStyle 设置。 对于每种设置,插图显示了一条粗细为 30 的蓝色线条(应用 capsStyle 的线条),以及重叠于其上的粗细为 1 的黑色线条(未应用 capsStyle 的线条):

 
joints:String (default = null) — JointStyle 类的值,指定用于拐角的连接外观的类型。 有效值为:JointStyle.BEVELJointStyle.MITERJointStyle.ROUND。 如果未指示值,则 Flash 使用圆角连接。

例如,以下图示显示了不同的 joints 设置。 对于每种设置,插图显示了一条粗细为 30 的带拐角的蓝色线条(应用 jointStyle 的线条),以及重叠于其上的粗细为 1 的带拐角的黑色线条(未应用 jointStyle 的线条):

注意:对于设置为 JointStyle.MITERjoints,您可以使用 miterLimit 参数限制尖角的长度。

 
miterLimit:Number (default = 3) — 一个表示将在哪个限制位置切断尖角的数字。 有效值的范围是 1 到 255(超出该范围的值将舍入为 1 或 255)。 此值只可用于 jointStyle 设置为 "miter" 的情况下。 miterLimit 值表示向外延伸的尖角可以超出角边相交所形成的结合点的长度。 此值表示为线条 thickness 的因子。 例如,miterLimit 因子为 2.5 且 thickness 为 10 像素时,尖角将在 25 像素处切断。

例如,请考虑下列带拐角的线条,每个线条都以 thickness 20 进行绘制,但它们的 miterLimit 分别设置为 1、2 和 4。 重叠在其上的黑色参考线条显示了结合处的联结点:

请注意,对于给定的 miterLimit 值,会有一个被切断的尖角的特定最大角度。 下表列出了部分示例:

miterLimit 值:小于此角度将被切断:
1.41490 度
260 度
430 度
815 度

另请参见

lineTo()方法 
public function lineTo(x:Number, y:Number):void

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

使用当前线条样式绘制一条从当前绘画位置开始到 (x, y) 结束的直线;当前绘画位置随后会设置为 (x, y)。 如果正在其中绘制的显示对象包含用 Flash 绘画工具创建的内容,则调用 lineTo() 方法将在该内容下面进行绘制。 如果在对 moveTo() 方法进行任何调用之前调用了 lineTo(),则当前绘画的默认位置为 (0, 0)。 如果缺少任何一个参数,则此方法将失败,并且当前绘画位置不改变。

参数

x:Number — 一个表示相对于父显示对象注册点的水平位置的数字(以像素为单位)。
 
y:Number — 一个表示相对于父显示对象注册点的垂直位置的数字(以像素为单位)。

moveTo()方法 
public function moveTo(x:Number, y:Number):void

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

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

参数

x:Number — 一个表示相对于父显示对象注册点的水平位置的数字(以像素为单位)。
 
y:Number — 一个表示相对于父显示对象注册点的垂直位置的数字(以像素为单位)。

示例 如何使用示例

下例使用 GraphicsExample 类绘制圆形、圆角矩形和正方形。 执行下列步骤可完成该任务:
  1. 声明 size 属性以备日后在确定每个形状的大小时使用。
  2. 声明若干属性,通过这些属性将背景色设置为橙色,将边框颜色设置为深灰色,将边框大小设置为 0 个像素,将边角半径设置为 9 个像素,并将舞台边缘与其它对象之间的间隔设置为 5 个像素。
  3. 使用在前面步骤中声明的属性以及使用 Graphics 类的内置方法,可在坐标 x = 0, y = 0 处绘制圆形、圆角矩形和正方形。
  4. 沿舞台顶部重新绘制每个形状,起点为 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);
        }
    }
}




 

评论添加到页面后给我发送电子邮件 | 评论报告

当前页: http://livedocs.adobe.com/flash/9.0_cn/ActionScriptLangRefV3/flash/display/Graphics.html