• ActionScript3(AS3)类库学习之(十一)——Graphics类


    Graphics 类包含用于绘制线条、填充和形状的属性和方法。

    无法通过 ActionScript 代码直接创建 Graphics 对象。我们通过 Shape、Sprite 和 MovieClip 对象里的graphics属性来进行绘图。

    Graphics 类是最终类;无法从其派生子类。

    一.画图前需要先定义线条或填充样式

    lineBitmapStyle(bitmap:BitmapData, matrix:Matrix = null, repeat:Boolean = true, smooth:Boolean = false):void
    指定一个位图,用于绘制线条时的线条笔触。   
    lineGradientStyle(type:String, colors:Array, alphas:Array, ratios:Array, matrix:Matrix
    = null, spreadMethod:String = "pad", interpolationMethod:String = "rgb", focalPointRatio:Number = 0):void 指定一种渐变,用于绘制线条时的笔触。
    lineShaderStyle(shader:Shader, matrix:Matrix
    = null):void 指定一个着色器以用于绘制线条时的线条笔触。
    lineStyle(thickness:Number
    = NaN, color:uint = 0, alpha:Number = 1.0, pixelHinting:Boolean = false, scaleMode:String = "normal", caps:String = null, joints:String = null, miterLimit:Number = 3):void 指定一种线条样式。 thickness:以点为单位表示线条的粗细;有效值为 0255。如果未指定数字,或者未定义该参数,则不绘制线条。如果传递的值小于 0,则默认值为 0。值 0 表示极细的粗细;最大粗细为 255。如果传递的值大于 255,则默认值为 255。 pixelHinting:指定是否提示笔触采用完整像素。在 pixelHinting 设置为 true 的情况下,线条宽度会调整到完整像素宽度。在 pixelHinting 设置为 false 的情况下,对于曲线和直线可能会出现脱节。 scaleMode:用于指定要使用的比例模式: LineScaleMode.NORMAL -- 在缩放对象时总是缩放线条的粗细(默认值)。 LineScaleMode.NONE -- 从不缩放线条粗细。 LineScaleMode.VERTICAL -- 如果仅 垂直缩放对象,则不缩放线条粗细。 LineScaleMode.HORIZONTAL -- 如果仅 水平缩放对象,则不缩放线条粗细。 caps:用于指定线条末端处端点类型的 CapsStyle 类的值。有效值为:CapsStyle.NONE、CapsStyle.ROUND 和 CapsStyle.SQUARE。默认为CapsStyle.ROUND joints:指定用于拐角的连接外观的类型。有效值为:JointStyle.BEVEL、JointStyle.MITER 和 JointStyle.ROUND。默认为JointStyle.ROUND miterLimit:用于表示剪切斜接的极限值的数字。有效值的范围是 1255(超出该范围的值将舍入为 1255)。默认为3。此值只可用于 jointStyle 设置为 "miter" 的情况下。miterLimit 值表示向外延伸的尖角可以超出角边相交所形成的结合点的长度。
    beginBitmapFill(bitmap:BitmapData, matrix:Matrix = null, repeat:Boolean = true, smooth:Boolean = false):void
    用位图图像填充绘图区。
    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 指定一种渐变填充.
    beginShaderFill(shader:Shader, matrix:Matrix
    = null):void 为对象指定着色器填充.
    endFill() 结束填充。

    二.画图

    moveTo(x:Number, y:Number):void
    将当前绘图位置移动到 (x, y)。    
    
    lineTo(x:Number, y:Number):void
    使用当前线条样式绘制一条从当前绘图位置开始到 (x, y) 结束的直线;当前绘图位置随后会设置为 (x, y)。
        
    cubicCurveTo(controlX1:Number, controlY1:Number, controlX2:Number, controlY2:Number, anchorX:Number, anchorY:Number):void
    从当前绘图位置到指定的锚点绘制一条三次贝塞尔曲线。
    
    curveTo(controlX:Number, controlY:Number, anchorX:Number, anchorY:Number):void
    使用当前线条样式和由 (controlX, controlY) 指定的控制点绘制一条从当前绘图位置开始到 (anchorX, anchorY) 结束的二次贝塞尔曲线。
             
    drawCircle(x:Number, y:Number, radius:Number):void
    绘制一个圆。
         
    drawEllipse(x:Number, y:Number, Number, height:Number):void
    绘制一个椭圆。
    
    drawRect(x:Number, y:Number, Number, height:Number):void
    绘制一个矩形。
             
    drawRoundRect(x:Number, y:Number, Number, height:Number, ellipseWidth:Number, ellipseHeight:Number = NaN):void
    绘制一个圆角矩形。

    三.高级绘图

    readGraphicsData(recurse:Boolean = true):Vector.<IGraphicsData>
    查询 Sprite 或 Shape 对象的矢量图形内容。
             
    drawGraphicsData(graphicsData:Vector.<IGraphicsData>):void
    提交一系列 IGraphicsData 实例来进行绘图。
              
    drawPath(commands:Vector.<int>, data:Vector.<Number>, winding:String = "evenOdd"):void
    提交一系列绘图命令来进行绘图。
    
    drawTriangles(vertices:Vector.<Number>, indices:Vector.<int> = null, uvtData:Vector.<Number> = null, culling:String = "none"):void
    呈现一组三角形(通常用于扭曲位图),并为其指定三维外观。
  • 相关阅读:
    开源数据采集组件比较: scribe、chukwa、kafka、flume
    主流开源SQL(on Hadoop)总结
    Hive over HBase和Hive over HDFS性能比较分析
    开源Astro(SparkSQL On HBase)
    ML: 降维算法-LE
    ML: 降维算法-LLE
    Blender使用基础
    Cycles渲染研究测试效果图
    vs2008所有DTE.ExecuteCommand命令
    come on,逆战
  • 原文地址:https://www.cnblogs.com/studynote/p/3029307.html
Copyright © 2020-2023  润新知