[研讨] 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将显示不出图形!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值