使用flash as3代码来画图.pdfVIP

  • 25
  • 0
  • 约8.27千字
  • 约 5页
  • 2017-04-11 发布于江苏
  • 举报
使用flash as3代码来画图

通过AS3.0可以方便的在场景中绘制各种图形,相对于提前绘制编译好的图形,使用代码绘制图形意为着更小的文 件尺寸,更加灵活的绘制和交互性。 Flash中的绘图是通过Graphics来实现的,Graphics类是直接继承了Object类,具有很多的绘图方法,大致分为 两类: 一是定义绘图样式的方法 二是用于绘制和清除图形的方法。 有关样式的方法包括线条的样式和填充样式两类。 有关绘图方法包括绘制和绘制开头两类。 绘图:通过 Shape 对象的 graphics 属性来执行矢量绘图命令 1、使用 lineStyle() 定义画图的线条样式 2、moveTo() - 设置当前绘画点; lineTo() - 以当前绘画点为起点,用当前定义的线条样式,画一条直线到目标点; curveTo() - 指定二次贝塞尔曲线的控制点和终点,从而完成曲线的绘制; drawRect() - 绘制矩形; drawCircle() - 绘制圆形; drawEllipse() - 绘制椭圆; 3、beginFill() 和 endFill() 用于填充他们之间所绘制的图形。 beginGradientFill 和 endFill() 用于渐变填充对应的方法。 转换:通过设置对象的 transform.matrix 属性,对其做相应的转换 Matrix.rotate() - 旋转的角度 Matrix.translate() - 平移的距离 Matrix.scale() - 缩放的比例 Matrix.b - 将矩阵垂直倾斜 Matrix.c - 将矩阵水平倾斜 一般来说要使用类的属性、方法和事件,需要先创建类的实例,但是Graphics类不允许用户自己来创建实例,那 么如何使用Graphics类的方法? 在显示类Shape类和Sprite类中,有一个Graphics属性,这个属性就是Graphics类的实例。也就是说要使用 Graphics类的方法,不能直接创建 Graphics类的实例,而是先创建Shape类或Sprite类的实例,此时的显示实例就具有Graphics,而Graphics属性是 Graphics类的实例,通过 Graphics属性就可以调用绘图的方法。 另外,由于MovieClip类继承了Sprite类,所以也可以在MovieClip类的实例中绘图。在实际应用中应该使用 Shape类来绘制图形,因为Shape类只有graphics属性和构造方法,所以绘制图形的效率更高。只有需要图形的交 互功能时,再使用Sprite类和MovieClip类。 编写绘图代码也要讲技巧 如三角形的代码:(使用前80后的绘制三角形代码) this.graphics.lineStyle(2, 0x990000, .75); this.graphics.beginFill(0x00FF00); this.graphics.moveTo(100,200); this.graphics.lineTo(200,100); this.graphics.lineTo(0,100); this.graphics.lineTo(100,200); 代码中的this引用主时间轴,主时间轴是MovieClip类的实例,所以this具有graphics属性,通过点语法就能访问 graphics属性。同时,graphics属性又引用Graphics类的实例,通过点语法就能调用方法。 如果像上面的类似代码很多,需要重复编写this.graphics,这样的代码,而且点语法的运算速度也不是很快。 就要对它进行优化。 使用with()函数来简化: with(this.graphics) { graphics.lineStyle(2, 0x990000, .75); graphics.beginFill(0x00FF00); graphics.moveTo(100,200); graphics.lineTo(200,100); graphics.lineTo(0,100); graphics.lineTo(100,200); } 利用with()函数,只需访问一次this.graphics属性,就可以多次调用绘图方法。 使用自定义函数简化: drawLine(this.graphics) function drawLine(g:Graphics):void { g.lineStyle(2,

文档评论(0)

1亿VIP精品文档

相关文档