在as3中,所有矢量图形的代码绘制都是独立出来交由Graphics类对象来完成的。Graphics并不是显示对象类,而是直接继承自根类Object.我们也无法用代码创建Graphics对象,没有办法调用它的构造函数。Graphics对象只能由as3内建的这些显示对象创建并调用。强行调用会导致报错。Graphics对象含有代码绘图的一系列API,
填色:单一颜色填充:beginFill(color:uint,alpha:number=1.0):void
渐变填充:beginGradientFill(type:string,colors:Array,alphas:Array,
ratios:Array,matrix:Matrix=null,spreadMethod:String="pad",
interpolationMethod:String="rgb",focalPointRatio:Number=0):void
使用位图填充:beginBitmapFill(bitmap:BitmapData,matrix:Matrix=null,repeat:Boolean=true,smooth:
Boolean=false):void
对上面3种方法之后绘制的图形进行填充endFill():void
画线: 绘制曲线 curveTo(controlX:Number,controlY:Number,anchorX:Number,anchorY:Number):void
绘制直线:lineTo(x:Number,y:Number):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
线头样式:线条样式:lineStyle(thickness:Number,color:uint=0,alpha:Number=1.0,pixeHinting:boolean=false,
scaleMode:String="normal",caps:String=null,joints:String=null,miterLinit:Number=3):void
渐变线条样式:lineGradientStyle(type:String,color:uint=0,alphas:Array,ratios:Array,matrix:Matrix=null,
spreadMethod:String="pad",interpolationMethod:String="rgb",focalPointRatio:Number=0):void
清除图形 清除绘制到此Graphics对象的图形,并重置填充和线条样式设置。clear():void
移动当前绘画点位置:moveTo(x:Number,y:Number):void
使用代码绘图时, 一般遵从下面的顺序:设置线头样式、填色、移动绘画点、画线或绘制图形、结束填色(endFill()).设置线头样式、填色都是可选的,根据代码需求取舍,但是顺序不能乱。
只要含有Graphics对象的显示对象都可以绘制矢量图。as3中有Graphics对象的DisplayObject子类有3个:Shape,Sprite,MovieClip,Sprite和MovieClip地绘制图方式和Shape一样。当一个显示对象中不仅需要绘制矢量图,还需要容纳其他显示对时,Shape就不能满足需要了,这时应当考虑Sprite类。