| 包 | flash.display |
| 类 | public final class Graphics |
| 继承 | Graphics Object |
| 语言版本 : | ActionScript 3.0 |
| Player 版本 : | Flash Player 9 |
graphics 属性,该属性是一个 Graphics 对象。 以下是为便于使用而提供的一些辅助函数:drawRect()、drawRoundRect()、drawCircle() 和 drawEllipse()。
无法通过 ActionScript 代码直接创建 Graphics 对象。 如果调用 new Graphics(),则会引发异常。
Graphics 类是最终类;无法从其派生子类。
另请参见
| 方法 | 定义方 | ||
|---|---|---|---|
|
beginBitmapFill(bitmap:BitmapData, matrix:Matrix = null, repeat:Boolean = true, smooth:Boolean = false):void
用位图图像填充绘图区。
| Graphics | ||
|
指定一种简单的单一颜色填充,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 | ||
|
使用当前线条样式和由 (controlX, controlY) 指定的控制点绘制一条从当前绘画位置开始到 (anchorX, anchorY) 结束的曲线。
| Graphics | ||
|
绘制一个圆。
| Graphics | ||
|
绘制一个椭圆。
| Graphics | ||
|
绘制一个矩形。
| Graphics | ||
|
drawRoundRect(x:Number, y:Number, width:Number, height:Number, ellipseWidth:Number, ellipseHeight:Number):void
绘制一个圆角矩形。
| Graphics | ||
|
对从上一次调用 beginFill()、beginGradientFill() 或 beginBitmapFill() 方法之后添加的直线和曲线应用填充。
| Graphics | ||
![]() |
指示对象是否已经定义了指定的属性。
| Object | |
![]() |
指示 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 | ||
![]() |
指示指定的属性是否存在、是否可枚举。
| Object | |
![]() |
设置循环操作动态属性的可用性。
| Object | |
![]() |
返回指定对象的字符串表示形式。
| Object | |
![]() |
返回指定对象的原始值。
| 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 像素的棋盘图案):
当
|
|
smooth:Boolean (default = false) — 如果为 false,则使用最近邻点算法来呈现放大的位图图像,而且该图像看起来是像素化的。 如果为 true,则使用双线性算法来呈现放大的位图图像。 使用最近邻点算法呈现通常较快。
|
另请参见
image1.jpg),它不断旋转并反复填充一个矩形。
Loader 和 URLRequest 对象加载此图像文件 (image1.jpg)。 此处,该文件位于与 SWF 文件相同的目录中。 需要编译 SWF 文件,并将“本地回放安全性”设置为“只访问本地文件”。Event 为 complete),将调用 drawImage() 方法。 如果未正确加载图像,ioErrorHandler() 方法将写入跟踪注释。drawImage() 方法中,将实例化 BitmapData 对象,并将其宽度和高度设置为图像 (image1.jpg) 的宽度和高度。 然后,将源图像绘制到 BitmapData 对象中。 接下来,在 mySprite Sprite 对象中绘制一个矩形,并使用 BitmapData 对象对其进行填充。 通过使用 Matrix 对象,beginBitmapFill() 方法将图像旋转 45 度,然后开始使用图像填充矩形,直至完成时为止。
package {
import flash.display.Sprite;
import flash.display.BitmapData;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.geom.Matrix;
public class Graphics_beginBitmapFillExample extends Sprite {
private var url:String = "image1.jpg";
private var loader:Loader = new Loader();
public function Graphics_beginBitmapFillExample() {
var request:URLRequest = new URLRequest(url);
loader.load(request);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, drawImage);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
}
private function drawImage(event:Event):void {
var mySprite:Sprite = new Sprite();
var myBitmap:BitmapData = new BitmapData(loader.width, loader.height, false);
myBitmap.draw(loader, new Matrix());
var matrix:Matrix = new Matrix();
matrix.rotate(Math.PI/4);
mySprite.graphics.beginBitmapFill(myBitmap, matrix, true);
mySprite.graphics.drawRect(100, 50, 200, 90);
mySprite.graphics.endFill();
addChild(mySprite);
}
private function ioErrorHandler(event:IOErrorEvent):void {
trace("Unable to load image: " + url);
}
}
}
| 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.LINEAR 或 GradientType.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 表示渐变框中的右侧位置。
注意:该值表示渐变框中的位置,而不是最终渐变的坐标空间,坐标空间可能比渐变框宽或窄。 为 例如,对于包括蓝和绿两种颜色的线性渐变,下例显示了基于不同
数组中的值必须持续增加;例如, |
|||||||||
matrix:Matrix (default = null) — 一个由 flash.geom.Matrix 类定义的转换矩阵。 flash.geom.Matrix 类包括 createGradientBox() 方法,通过该方法可以方便地设置矩阵,以便与 beginGradientFill() 方法一起使用。
|
|||||||||
spreadMethod:String (default = "pad") — 用于指定要使用哪种 spread 方法的 SpreadMethod 类的值:SpreadMethod.PAD、SpreadMethod.REFLECT 或 SpreadMethod.REPEAT。
例如,请考虑两种颜色之间的简单线性渐变: import flash.geom.* import flash.display.* var fillType:String = GradientType.LINEAR; var colors:Array = [0xFF0000, 0x0000FF]; var alphas:Array = [1, 1]; 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); 此示例将
如果将
如果将
|
|||||||||
interpolationMethod:String (default = "rgb") — 用于指定要使用哪个值的 InterpolationMethod 类的值:InterpolationMethod.linearRGB 或 InterpolationMethod.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 — 一个数字,指定下一个锚点相对于父显示对象注册点的垂直位置。
|
绘制 4 条曲线以生成一个圆,并将其填充为绿色。
请注意,由于二次贝塞尔方程式所具有的特性,此对象并不是完美的圆。 绘制圆的最佳方法是使用 Graphics 类的 drawCircle() 方法。
package {
import flash.display.Sprite;
import flash.display.Shape;
public class Graphics_curveToExample1 extends Sprite
{
public function Graphics_curveToExample1():void
{
var roundObject:Shape = new Shape();
roundObject.graphics.beginFill(0x00FF00);
roundObject.graphics.moveTo(250, 0);
roundObject.graphics.curveTo(300, 0, 300, 50);
roundObject.graphics.curveTo(300, 100, 250, 100);
roundObject.graphics.curveTo(200, 100, 200, 50);
roundObject.graphics.curveTo(200, 0, 250, 0);
roundObject.graphics.endFill();
this.addChild(roundObject);
}
}
}
curveTo() 方法绘制一个新月。
绘制两条 1 个像素粗的曲线,并将两条曲线之间的区域填充为白色。 moveTo() 方法用于将当前绘制位置放在坐标 (100, 100) 上。 第一条曲线将绘制位置移到 (100, 200),这是其目标点。 第二条曲线将该位置恢复为开始位置 (100, 100),这是其目标点。 水平控制点决定了不同的曲线大小。
package {
import flash.display.Sprite;
import flash.display.Shape;
public class Graphics_curveToExample2 extends Sprite
{
public function Graphics_curveToExample2() {
var newMoon:Shape = new Shape();
newMoon.graphics.lineStyle(1, 0);
newMoon.graphics.beginFill(0xFFFFFF);
newMoon.graphics.moveTo(100, 100);
newMoon.graphics.curveTo(30, 150, 100, 200);
newMoon.graphics.curveTo(50, 150, 100, 100);
graphics.endFill();
this.addChild(newMoon);
}
}
}
| 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 — 相对于父显示对象注册点的椭圆圆心的 x 位置(以像素为单位)。
|
|
y:Number — 相对于父显示对象注册点的椭圆圆心的 y 位置(以像素为单位)。
|
|
width:Number — 椭圆的宽度(以像素为单位)。
|
|
height:Number — 椭圆的高度(以像素为单位)。
|
另请参见
drawEgg() 函数绘制三个不同大小的鸡蛋(三种尺寸的椭圆),具体取决于 eggSize 参数。
drawEgg() 函数,并为应该绘制鸡蛋的位置传递水平和垂直参数以及鸡蛋类型 (eggSize)。 (可使用鸡蛋(椭圆形)高度和宽度来确定其显示位置。)drawEgg() 函数绘制不同大小的椭圆,并使用 beginFill() 方法将其填充为白色。 没有事先为此函数编写错误处理代码。
package {
import flash.display.Sprite;
import flash.display.Shape;
public class Graphics_drawEllipseExample extends Sprite
{
public static const SMALL:uint = 0;
public static const MEDIUM:uint = 1;
public static const LARGE:uint = 2;
public function Graphics_drawEllipseExample()
{
drawEgg(SMALL, 0, 100);
drawEgg(MEDIUM, 100, 60);
drawEgg(LARGE, 250, 35);
}
public function drawEgg(eggSize:uint, x:Number, y:Number):void {
var myEgg:Shape = new Shape();
myEgg.graphics.beginFill(0xFFFFFF);
myEgg.graphics.lineStyle(1);
switch(eggSize) {
case SMALL:
myEgg.graphics.drawEllipse(x, y, 60, 70);
break;
case MEDIUM:
myEgg.graphics.drawEllipse(x, y, 120, 150);
break;
case LARGE:
myEgg.graphics.drawEllipse(x, y, 150, 200);
break;
default:
trace ("Wrong size! There is no egg.");
break;
}
myEgg.graphics.endFill();
this.addChild(myEgg);
}
}
}
| 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 — 如果 width 或 height 参数不是数值 (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 — 如果 width、height、ellipseWidth 或 ellipseHeight 参数不是数值 (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:Array — colors 数组中对应颜色的 alpha 值数组;有效值为 0 到 100。 如果值小于 0,Flash Player 将使用 0。 如果值大于 100,Flash Player 将使用 100。
|
|||||||||
ratios:Array — 颜色分布比率的数组;有效值为 0 到 255。 该值定义 100% 采样的颜色所在位置的宽度百分比。 值 0 表示渐变框中的左侧位置,255 表示渐变框中的右侧位置。 该值表示渐变框中的位置,而不是最终渐变的坐标空间,坐标空间可能比渐变框宽或窄。 为 colors 参数中的每个值指定一个值。
例如,对于包含蓝和绿两种颜色的线性渐变,下图显示了基于不同
数组中的值必须持续增加;例如, |
|||||||||
matrix:Matrix (default = null) — 一个由 flash.geom.Matrix 类定义的转换矩阵。 flash.geom.Matrix 类包括 createGradientBox() 方法,通过该方法可以方便地设置矩阵,以便与 lineGradientStyle() 方法一起使用。
|
|||||||||
spreadMethod:String (default = "pad") — 用于指定要使用哪种 spread 方法的 SpreadMethod 类的值:
|
|||||||||
interpolationMethod:String (default = "rgb") — 用于指定要使用哪个值的 InterpolationMethod 类的值。 例如,假设有两种颜色之间的简单线性渐变(spreadMethod 参数设置为 SpreadMethod.REFLECT)。 不同的插值方法对外观的影响如下所示:
|
|||||||||
focalPointRatio:Number (default = 0) — 一个控制渐变的焦点位置的数字。 值 0 表示焦点位于中心。 值 1 表示焦点位于渐变圆的一条边界上。 值 -1 表示焦点位于渐变圆的另一条边界上。 小于 -1 或大于 1 的值将舍入为 -1 或 1。 下列图像显示 focalPointRatio 为 -0.75 的渐变:
|
另请参见
Matrix 类中的方法 createGradientBox() 用于将渐变框定义为 200 个像素宽、40 个像素高。 线条粗细设置为 5 个像素。 必须为 lineGradientStyle() 方法定义笔触粗细。 渐变设置为线性。 渐变颜色设置为红色、绿色和蓝色。 颜色透明度(Alpha 值)设置为 1(不透明)。 渐变的分布是均匀的,其中在 0(渐变框中的左侧位置)、128(渐变框的中间位置)和 255(渐变框中的右侧位置)处的颜色采样率为 100%。 矩形宽度范围内包含渐变的所有色谱;而圆包含色谱中间的 50%。
package {
import flash.display.Sprite;
import flash.display.Shape;
import flash.geom.Matrix;
import flash.display.GradientType;
public class Graphics_lineGradientStyleExample extends Sprite
{
public function Graphics_lineGradientStyleExample()
{
var myShape:Shape = new Shape();
var gradientBoxMatrix:Matrix = new Matrix();
gradientBoxMatrix.createGradientBox(200, 40, 0, 0, 0);
myShape.graphics.lineStyle(5);
myShape.graphics.lineGradientStyle(GradientType.LINEAR, [0xFF0000,
0x00FF00, 0x0000FF], [1, 1, 1], [0, 128, 255], gradientBoxMatrix);
myShape.graphics.drawRect(0, 0, 200, 40);
myShape.graphics.drawCircle(100, 120, 50);
this.addChild(myShape);
}
}
}
| 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 类的值:
|
|||||||||||
caps:String (default = null) — 用于指定线条末端处端点类型的 CapsStyle 类的值。 有效值为:CapsStyle.NONE、CapsStyle.ROUND 和 CapsStyle.SQUARE。 如果未指示值,则 Flash 使用圆头端点。
例如,以下图示显示了不同的
|
|||||||||||
joints:String (default = null) — JointStyle 类的值,指定用于拐角的连接外观的类型。 有效值为:JointStyle.BEVEL、JointStyle.MITER 和 JointStyle.ROUND。 如果未指示值,则 Flash 使用圆角连接。
例如,以下图示显示了不同的
注意:对于设置为 |
|||||||||||
miterLimit:Number (default = 3) — 一个表示将在哪个限制位置切断尖角的数字。 有效值的范围是 1 到 255(超出该范围的值将舍入为 1 或 255)。 此值只可用于 jointStyle 设置为 "miter" 的情况下。 miterLimit 值表示向外延伸的尖角可以超出角边相交所形成的结合点的长度。 此值表示为线条 thickness 的因子。 例如,miterLimit 因子为 2.5 且 thickness 为 10 像素时,尖角将在 25 像素处切断。
例如,请考虑下列带拐角的线条,每个线条都以
请注意,对于给定的
|
另请参见
getStyle() 方法的说明,请参阅 lineTo() 或 moveTo() 方法的示例。
| 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 — 一个表示相对于父显示对象注册点的垂直位置的数字(以像素为单位)。
|
lineTo() 方法绘制一个梯形,从像素 (100, 100) 开始。
线条粗细设置为 10 个像素,颜色为金色且不透明,线条终点设置为 none(因为联接了所有线条),两条线之间的联接点设置为 MITER 并将尖角限制设置为 10 以绘制尖锐的边角。
package {
import flash.display.Sprite;
import flash.display.LineScaleMode;
import flash.display.CapsStyle;
import flash.display.JointStyle;
import flash.display.Shape;
public class Graphics_lineToExample extends Sprite {
public function Graphics_lineToExample() {
var trapezoid:Shape = new Shape();
trapezoid.graphics.lineStyle(10, 0xFFD700, 1, false, LineScaleMode.VERTICAL,
CapsStyle.NONE, JointStyle.MITER, 10);
trapezoid.graphics.moveTo(100, 100);
trapezoid.graphics.lineTo(120, 50);
trapezoid.graphics.lineTo(200, 50);
trapezoid.graphics.lineTo(220, 100);
trapezoid.graphics.lineTo(100, 100);
this.addChild(trapezoid);
}
}
}
| moveTo | () | 方法 |
public function moveTo(x:Number, y:Number):void
| 语言版本 : | ActionScript 3.0 |
| Player 版本 : | Flash Player 9 |
将当前绘画位置移动到 (x, y)。 如果缺少任何一个参数,则此方法将失败,并且当前绘画位置不改变。
参数
x:Number — 一个表示相对于父显示对象注册点的水平位置的数字(以像素为单位)。
|
|
y:Number — 一个表示相对于父显示对象注册点的垂直位置的数字(以像素为单位)。
|
moveTo() 和 lineTo() 方法绘制一条 3 个像素粗的虚线。
通过使用 lineStyle() 方法,将线条粗细设置为 3 个像素。 还将其设置为不进行缩放。 颜色设置为红色,并且不透明度为 25%。 CapsStyle 属性设置为 square(默认值为 round)。
由于 Graphics_moveToExample 是 Sprite 类实例,因此,它具有所有 Graphics 类方法的访问权限。 可以使用 Graphics 类方法直接在 Graphic_moveToExample Sprite 对象上进行绘制。 但是,如果未将矢量绘画对象放在 Shape 中,则会限制它们的管理、移动或更改方式。
package {
import flash.display.Sprite;
import flash.display.CapsStyle;
import flash.display.LineScaleMode;
public class Graphics_moveToExample extends Sprite
{
public function Graphics_moveToExample() {
graphics.lineStyle(3, 0x990000, 0.25, false,
LineScaleMode.NONE, CapsStyle.SQUARE);
graphics.moveTo(10, 20);
graphics.lineTo(20, 20);
graphics.moveTo(30, 20);
graphics.lineTo(50, 20);
graphics.moveTo(60, 20);
graphics.lineTo(80, 20);
graphics.moveTo(90, 20);
graphics.lineTo(110, 20);
graphics.moveTo(120, 20);
graphics.lineTo(130, 20);
}
}
}
size 属性以备日后在确定每个形状的大小时使用。
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