Shape、Sprite 和 MovieClip 对象的 graphics 属性(graphics类)的简单用法

一直都很想学下用AS画简单的线条,今天终于抽出空看了下关于这方面的AS,顺便做了下面的笔记。拿来和大家分享。不当之处请大家多指教。AS3.0中管这叫绘图 API 。绘图 API 是 ActionScript 中一项内置功能的名称,您可以使用该功能来创建矢量图形(直线、曲线、形状、填充和渐变),并使用 ActionScript 在屏幕上显示它们(这名是书上复制的,呵呵)。         
实现绘图API功能,AS3.0是通过flash.display.Graphics 类来完成的,Graphics类是以Shape、Sprite 或MovieClip 实例的属性这个身份来实现绘图功能!下面是最简单的画线和曲线。复杂的东西奄就不会啦
画线条:                              
一、设置线条和填充样式。可以使用lineStyle() 或 lineGradientStyle() 方法来指定线条的外观。创建纯色线条:
   AS:myShape.graphics.lineStyle(2, 0x990000, 0.75);  // myShape是Shape的一个实例,"2":指线条的粗细, "0x990000"是指线条的颜色,"0.75":是指线条的透明度,完全不透明的话就设成1好了。lineStyle()方法还可以接受其它的额外参数,这里不一一介绍!

二、设置线条的起始点。调用 moveTo() 方法。
      AS:myShape.graphics.moveTo(100, 100);//设置坐标点(100,100)为线条的起始点

三、绘制线条到第二个点(两点确定一条直线嘛)。调用lineTo()方法。
AS:myShape.graphics.lineTo(200,200)//坐标点(200,200)是目前所绘线条的第二个点也是结束点。
以上已绘制好一条直线!
综合AS如下:

VarmyShape:Shape=Shape();                                                                          
myShape.graphics.lineStyle(2,0x990000,0.75);
myShape.graphics.moveTo(100,100);                                                              
myShape.graphics.lineTo(200,200);         
addChild(myShape);

画曲线:curveTo() 方法可以绘制二次贝塞尔曲线。这将绘制一个连接两个点(称为锚点)的弧,同时向第三个点(称为控制点)弯曲。Graphics 对象使用当前绘制位置作为第一个锚点。调用 curveTo() 方法时,将传递以下四个参数:控制点的 x 和 y 坐标,后跟第二个锚点的 x 和 y 坐标。

一、设置线条和填充样式。设置线条的样式和以上画直线的方法是一样的,如果要创建填充形状,在绘制前调用 beginFill()、beginGradientFill()、beginBitmapFill() 或 beginShaderFill() 方法来设置填充样式。最基本的方法beginFill()接受两个参数。
  AS:myShape.graphics.beginFill(0x00FF00,0.7);//”0x00ff00":指填充颜色,“0.7”:批透明度(Alpha值)
二、设置线条的起始点。调用 moveTo() 方法。
    AS:myShape.graphics.moveTo(100, 100);//设置坐标点(100,100)为线条的起始点。
三、绘制曲线。调用curveTo() 方法。curveTo() 方法可以绘制二次贝塞尔曲线。这将绘制一个连接两个点(称为锚点)的弧,同时向第三个点(称为控制点)弯曲,调用 curveTo() 方法时,将传递以下四个参数:控制点的 x 和 y 坐标,后跟第二个锚点的 x 和 y 坐标。
    AS:myShape.graphics.curveTo(175, 125, 200, 200);//点(175,125)是控制点的坐标,点(200,200)是第二个锚点的坐标。

综合AS:
  var myShape:Shape=new Shape();   
  myShape.graphics.lineStyle(2,0x990000,0.75);      
  myShape.graphics.beginFill(0x256984,0.5);
//设置填充颜色,可调用 endFill() 方法来结束 ,如果绘制的形状没有闭合(换句话说,在调用 endFill() 时,绘制点不在形状的起始点),调用 endFill()方法时, Flash Player 或AIR 将自动绘制一条直线以闭合形状    
myShape.graphics.moveTo(100,100);   
myShape.graphics.curve(175,125,200,200);   
addChild(myShape);
以上曲线已完成

经过试验,在绘画前一定要先进行第一步的设置,要不然Playe将显示不出图形!
原文地址:https://www.cnblogs.com/OwenWu/p/1721345.html