亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pen.as

?? actionscript3 cookbook 源代碼S3CBLibrary
?? AS
字號:
package ascb.drawing {

  import flash.display.Graphics;
  import flash.geom.Matrix;
  import flash.display.BitmapData;

  public class Pen {

    private var _gTarget:Graphics;
    private var _bLineStyleSet:Boolean;

    /**
     *  Get or set the target movie clip. You can also set the target
     *  movie clip when calling the constructor. When calling the
     *  constructor you can also have the Pen automatically create a
     *  new empty movie clip in a parent.
     *  @example
     *  <pre>
     *  import ascb.drawing.Pen;
     *  
     *  // Have the Pen create a new empty movie clip in this.
     *  var pCircle:Pen = new Pen(this, true);
     *  pCircle.drawCircle(10);
     *  trace(pCircle.target);
     */
    public function set target(gTarget:Graphics):void {
      _gTarget = gTarget;
    }

    public function get target():Graphics {
      return _gTarget;
    }

    public function Pen(gTarget:Graphics) {
      _gTarget = gTarget;
    }

    /**
     *  The lineStyle() method is optional. The Pen class uses a default
     *  line style of you don't call the method.
     *  @param  thickness   (optional) The point thickness of the line (default 0)
     *  @param  rgb         (optional) The RGB value of the line (default 0)
     *  @param  alpha       (optional) The alpha of the line (default 100)
     */
    public function lineStyle(nThickness:Number = 1, nRGB:Number = 0, nAlpha:Number = 1, bPixelHinting:Boolean = false, sScaleMode:String = "normal", sCaps:String = null, sJoints:String = null, nMiterLimit:Number = 3):void {
      _gTarget.lineStyle(nThickness, nRGB, nAlpha, bPixelHinting, sScaleMode, sCaps, sJoints, nMiterLimit);
      _bLineStyleSet = true;
    }
    
    public function lineGradientStyle(sType:String, aColors:Array, aAlphas:Array, aRatios:Array, mtxTransform:Matrix = null, sMethod:String = "pad", sInterpolation:String = "rgb", nFocalPoint:Number = 0):void {
      if(!_bLineStyleSet) {
      	lineStyle();
      }
      _gTarget.lineGradientStyle(sType, aColors, aAlphas, aRatios, mtxTransform, sMethod, sInterpolation, nFocalPoint);
    }

    public function beginFill(nRGB:Number, nAlpha:Number = 1):void {
      _gTarget.beginFill(nRGB, nAlpha);
    }

    public function beginGradientFill(sFillType:String, aColors:Array, aAlphas:Array, aRatios:Array, mtxTransform:Matrix = null, sMethod:String = "pad", sInterpolation:String = "rgb", nFocalPoint:Number = 0):void {
      _gTarget.beginGradientFill(sFillType, aColors, aAlphas, aRatios, mtxTransform, sMethod, sInterpolation, nFocalPoint);
    }
    
    public function beginBitmapFill(bmpData:BitmapData, mtxTransform:Matrix = null, bRepeat:Boolean = true, bSmooth:Boolean = false):void {
      _gTarget.beginBitmapFill(bmpData, mtxTransform, bRepeat, bSmooth);
    }

    public function endFill():void {
      _gTarget.endFill();
    }

    public function clear():void {
      _gTarget.clear();
      _bLineStyleSet = false;
    }

    public function moveTo(nX:Number, nY:Number):void {
      _gTarget.moveTo(nX, nY);
    }

    public function lineTo(nX:Number, nY:Number):void {
      // Make sure the line style is set. Otherwise, use the default values.
      if(!_bLineStyleSet) {
        lineStyle();
      }
      _gTarget.lineTo(nX, nY);
    }

    public function curveTo(nCtrlX:Number, nCtrlY:Number, nAnchorX:Number, nAnchorY:Number):void {
      // Make sure the line style is set. Otherwise, use the default values.
      if(!_bLineStyleSet) {
        lineStyle();
      }
      _gTarget.curveTo(nCtrlX, nCtrlY, nAnchorX, nAnchorY);
    }

    /**
     *  Draw a line from one point to another.
     */
    public function drawLine(nX0:Number, nY0:Number, nX1:Number, nY1:Number):void {
      // Make sure the line style is set. Otherwise, use the default values.
      if(!_bLineStyleSet) {
        lineStyle();
      }
      _gTarget.moveTo(nX0, nY0);
      _gTarget.lineTo(nX1, nY1);
    }

    /**
     *  Draw a curve from one point to another.
     */
    public function drawCurve(nX:Number, nY:Number, nCtrlX:Number, nCtrlY:Number, nAnchorX:Number, nAnchorY:Number):void {
      // Make sure the line style is set. Otherwise, use the default values.
      if(!_bLineStyleSet) {
        lineStyle();
      }
      _gTarget.moveTo(nX, nY);
      _gTarget.curveTo(nCtrlX, nCtrlY, nAnchorX, nAnchorY);
    }

    public function drawRect(nX:Number, nY:Number, nWidth:Number, nHeight:Number):void {
      if(!_bLineStyleSet) {
        lineStyle();
      }
      _gTarget.drawRect(nX, nY, nWidth, nHeight);
    }
    
    public function drawRoundRect(nX:Number, nY:Number, nWidth:Number, nHeight:Number, nRadius:Number):void {
      if(!_bLineStyleSet) {
        lineStyle();
      }
      _gTarget.drawRoundRect(nX, nY, nWidth, nHeight, nRadius);
    }

    public function drawRoundRectComplex(nX:Number, nY:Number, nWidth:Number, nHeight:Number, nA:Number, nB:Number, nC:Number, nD:Number):void {
      if(!_bLineStyleSet) {
        lineStyle();
      }
      _gTarget.drawRoundRectComplex(nX, nY, nWidth, nHeight, nA, nB, nC, nD);
    }

    public function drawCircle(nX:Number, nY:Number, nRadius:Number):void {
      if(!_bLineStyleSet) {
        lineStyle();
      }
      _gTarget.drawCircle(nX, nY, nRadius);
    }

    public function drawSlice (nArc:Number, nRadius:Number, nStartingAngle:Number, nX:Number, nY:Number):void {
      drawArc(nX, nY, nRadius, nArc, nStartingAngle, true);
    }

    public function drawArc (nX:Number, nY:Number, nRadius:Number, nArc:Number, nStartingAngle:Number = 0, bRadialLines:Boolean = false):void  {

      // The angle of each of the eight segments is 45 degrees (360 divided by eight),
      // which equals p/4 radians.
      if(nArc > 360) {
        nArc = 360;
      }
      nArc = Math.PI/180 * nArc;
      var nAngleDelta:Number = nArc/8;

      // Find the distance from the circle's center to the control points
      // for the curves.
      var nCtrlDist:Number = nRadius/Math.cos(nAngleDelta/2);

      nStartingAngle *= Math.PI / 180;

      var nAngle:Number = nStartingAngle;
      var nCtrlX:Number;
      var nCtrlY:Number;
      var nAnchorX:Number;
      var nAnchorY:Number;

      var nStartingX:Number = nX + Math.cos(nStartingAngle) * nRadius;
      var nStartingY:Number = nY + Math.sin(nStartingAngle) * nRadius;

      if(bRadialLines) {
        moveTo(nX, nY);
        lineTo(nStartingX, nStartingY);
      }
      else {
        // Move to the starting point, one radius to the right of the circle's center.
        moveTo(nStartingX, nStartingY);
      }

      // Repeat eight times to create eight segments.
      for (var i:Number = 0; i < 8; i++) {

        // Increment the angle by angleDelta (p/4) to create the whole circle (2p).
        nAngle += nAngleDelta;

        // The control points are derived using sine and cosine.
        nCtrlX = nX + Math.cos(nAngle-(nAngleDelta/2))*(nCtrlDist);
        nCtrlY = nY + Math.sin(nAngle-(nAngleDelta/2))*(nCtrlDist);

        // The anchor points (end points of the curve) can be found similarly to the
        // control points.
        nAnchorX = nX + Math.cos(nAngle) * nRadius;
        nAnchorY = nY + Math.sin(nAngle) * nRadius;

        // Draw the segment.
        curveTo(nCtrlX, nCtrlY, nAnchorX, nAnchorY);
      }
      if(bRadialLines) {
        lineTo(nX, nY);
      }
    }


    public function drawEllipse (nX:Number, nY:Number, nRadiusX:Number, nRadiusY:Number):void {

      var nAngleDelta:Number = Math.PI / 4;

      var nAngle:Number = 0;

      // Whereas the circle has only one distance to the control point 
      // for each segment, the ellipse has two distances: one that 
      // corresponds to xRadius and another that corresponds to yRadius.
      var nCtrlDistX:Number = nRadiusX / Math.cos(nAngleDelta/2);
      var nCtrlDistY:Number = nRadiusY / Math.cos(nAngleDelta/2);
      var nCtrlX:Number;
      var nCtrlY:Number;
      var nAnchorX:Number;
      var nAnchorY:Number;

      moveTo(nX + nRadiusX, nY);

      for (var i:Number = 0; i < 8; i++) {
        nAngle += nAngleDelta;
        nCtrlX = nX + Math.cos(nAngle-(nAngleDelta/2))*(nCtrlDistX);
        nCtrlY = nY + Math.sin(nAngle-(nAngleDelta/2))*(nCtrlDistY);
        nAnchorX = nX + Math.cos(nAngle) * nRadiusX;
        nAnchorY = nY + Math.sin(nAngle) * nRadiusY;
        this.curveTo(nCtrlX, nCtrlY, nAnchorX, nAnchorY);
      }
    }

    /**
     *  Draw a triangle given the lengths of two sides and the angle between them.
     */
    public function drawTriangle (nX:Number, nY:Number, nAB:Number, nAC:Number, nAngle:Number, nRotation:Number = 0):void {

      nRotation = nRotation * Math.PI / 180;

      // Convert the angle between the sides from degrees to radians.
      nAngle = nAngle * Math.PI / 180;


      // Calculate the coordinates of points b and c.
      var nBx:Number = Math.cos(nAngle - nRotation) * nAB;
      var nBy:Number = Math.sin(nAngle - nRotation) * nAB;
      var nCx:Number = Math.cos(-nRotation) * nAC;
      var nCy:Number = Math.sin(-nRotation) * nAC;

      // Calculate the centroid's coordinates.
      var nCentroidX:Number = 0;
      var nCentroidY:Number = 0;

      // Move to point a, then draw line ac, then line cb, and finally ba (ab).
      drawLine(-nCentroidX + nX, -nCentroidY + nY, nCx - nCentroidX + nX, nCy - nCentroidY + nY);
      lineTo(nBx - nCentroidX + nX, nBy - nCentroidY + nY);
      lineTo(-nCentroidX + nX, -nCentroidY + nY);
    }

    public function drawRegularPolygon (nX:Number, nY:Number, nSides:Number, nLength:Number, nRotation:Number = 0):void {

      nRotation = nRotation * Math.PI / 180;

      // The angle formed between the segments from the polygon's center as shown in 
      // Figure 4-5. Since the total angle in the center is 360 degrees (2p radians),
      // each segment's angle is 2p divided by the number of sides.
      var nAngle:Number = (2 * Math.PI) / nSides;

      // Calculate the length of the radius that circumscribes the polygon (which is
      // also the distance from the center to any of the vertices).
      var nRadius:Number = (nLength/2)/Math.sin(nAngle/2);

      // The starting point of the polygon is calculated using trigonometry where 
      // radius is the hypotenuse and nRotation is the angle.
      var nPx:Number = (Math.cos(nRotation) * nRadius) + nX;
      var nPy:Number = (Math.sin(nRotation) * nRadius) + nY;

      // Move to the starting point without yet drawing a line.
      moveTo(nPx, nPy);

      // Draw each side. Calculate the vertex coordinates using the same trigonometric
      // ratios used to calculate px and py earlier.
      for (var i:Number = 1; i <= nSides; i++) {
        nPx = (Math.cos((nAngle * i) + nRotation) * nRadius) + nX;
        nPy = (Math.sin((nAngle * i) + nRotation) * nRadius) + nY;
        lineTo(nPx, nPy);
      }
    }

    public function drawStar(nX:Number, nY:Number, nPoints:Number, nInnerRadius:Number, nOuterRadius:Number, nRotation:Number = 0):void {

      if(nPoints < 3) {
        return;
      }

      var nAngleDelta:Number = (Math.PI * 2) / nPoints;
      nRotation = Math.PI * (nRotation - 90) / 180;

      var nAngle:Number = nRotation;

      var nPenX:Number = nX + Math.cos(nAngle + nAngleDelta / 2) * nInnerRadius;
      var nPenY:Number = nY + Math.sin(nAngle + nAngleDelta / 2) * nInnerRadius;

      moveTo(nPenX, nPenY);

      nAngle += nAngleDelta;

      for(var i:Number = 0; i < nPoints; i++) {
        nPenX = nX + Math.cos(nAngle) * nOuterRadius;
        nPenY = nY + Math.sin(nAngle) * nOuterRadius;
        lineTo(nPenX, nPenY);
        nPenX = nX + Math.cos(nAngle + nAngleDelta / 2) * nInnerRadius;
        nPenY = nY + Math.sin(nAngle + nAngleDelta / 2) * nInnerRadius;
        lineTo(nPenX, nPenY);
        nAngle += nAngleDelta;
      }

    }

  }
  
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕的久久| 亚洲九九爱视频| 欧美精品一区二区高清在线观看 | 成人激情视频网站| 国产一区日韩二区欧美三区| 久久激情五月婷婷| 亚洲自拍偷拍九九九| 亚洲男人的天堂av| 中文字幕在线免费不卡| 亚洲欧洲www| 亚洲精品亚洲人成人网| 亚洲国产日韩一级| 日本免费在线视频不卡一不卡二| 美女精品自拍一二三四| 极品美女销魂一区二区三区免费| 国产综合久久久久久久久久久久| 国产麻豆91精品| 成人免费av网站| 色婷婷亚洲综合| 欧美精品视频www在线观看| 欧美一级在线免费| 久久久久久久久久久99999| 中文字幕欧美激情一区| 中文字幕在线一区二区三区| 亚洲区小说区图片区qvod| 亚洲自拍偷拍九九九| 美女视频一区二区三区| 国产成人午夜视频| 91老司机福利 在线| 欧美高清视频www夜色资源网| 91精品国产综合久久小美女| 2023国产精品视频| 亚洲特级片在线| 午夜精品影院在线观看| 蜜臀99久久精品久久久久久软件| 国产精品白丝jk白祙喷水网站| 99精品视频一区| 欧美一卡二卡三卡四卡| 中文字幕一区二区三区色视频 | 94-欧美-setu| 在线视频欧美区| 91精品国产综合久久香蕉麻豆| 久久精品在线免费观看| 一区二区三区欧美视频| 免费观看在线综合| 成人97人人超碰人人99| 7777精品伊人久久久大香线蕉完整版 | 日本一区二区高清| 亚洲一级二级在线| 成人综合婷婷国产精品久久蜜臀| 欧美色视频在线| 国产人成一区二区三区影院| 亚洲妇熟xx妇色黄| 国产成人激情av| 555www色欧美视频| ...av二区三区久久精品| 麻豆成人久久精品二区三区红| 99久久精品免费看国产免费软件| 欧美一区午夜视频在线观看 | 国产在线视频一区二区三区| 在线观看一区二区视频| 国产日韩精品久久久| 日本网站在线观看一区二区三区| 成人午夜激情片| 欧美电影免费观看高清完整版在线 | 亚洲无线码一区二区三区| 岛国av在线一区| 日韩精品专区在线| 亚洲一二三区视频在线观看| 懂色av中文一区二区三区 | 亚洲一区二区三区国产| 福利一区二区在线| 欧美不卡一二三| 视频一区二区欧美| 欧美伊人久久大香线蕉综合69| 中文字幕的久久| 国产福利91精品一区| 日韩午夜三级在线| 天天色综合天天| 在线观看日韩电影| 自拍偷拍亚洲激情| 成av人片一区二区| 久久久国产精品不卡| 国产资源在线一区| 日韩限制级电影在线观看| 午夜久久久久久久久| 欧美三级日韩三级| 亚洲自拍偷拍麻豆| 在线免费观看一区| 亚洲主播在线播放| 色婷婷久久综合| 亚洲人成网站色在线观看| 成人av电影在线播放| 国产色一区二区| 精品写真视频在线观看| 欧美mv日韩mv亚洲| 精品一区二区久久久| 日韩欧美中文字幕制服| 日本在线播放一区二区三区| 精品视频一区 二区 三区| 亚洲国产另类av| 欧美性生活影院| 亚洲国产精品一区二区久久| 欧美无砖砖区免费| 五月婷婷综合在线| 制服丝袜中文字幕亚洲| 免费人成精品欧美精品 | 一区二区三区四区在线| 91高清视频在线| 亚洲一区在线视频| 欧美军同video69gay| 日韩国产成人精品| 日韩免费高清av| 国产二区国产一区在线观看| 中文字幕av一区二区三区免费看| 成人午夜免费视频| 亚洲黄色性网站| 欧美日韩成人激情| 韩国女主播成人在线| 日本一区二区综合亚洲| 成人午夜av在线| 亚洲精品乱码久久久久| 91精品婷婷国产综合久久竹菊| 蜜桃视频免费观看一区| 国产欧美综合在线观看第十页 | 国产精品乱码人人做人人爱| 91污在线观看| 天天av天天翘天天综合网| 欧美成人video| 99在线视频精品| 午夜视频在线观看一区二区| 日韩欧美www| 不卡av免费在线观看| 亚洲第一福利一区| 精品久久99ma| 成人的网站免费观看| 一区二区三区在线不卡| 日韩欧美三级在线| 成人av资源在线观看| 亚洲国产日韩在线一区模特| 精品久久久久久久久久久院品网 | 欧美国产欧美亚州国产日韩mv天天看完整| av成人免费在线| 美腿丝袜亚洲三区| 国产精品久久久久一区二区三区 | 成人黄色在线视频| 午夜精品一区二区三区电影天堂 | 久久天天做天天爱综合色| 91丝袜美腿高跟国产极品老师| 亚洲成人第一页| 国产亚洲午夜高清国产拍精品| 91黄色激情网站| 国产成人免费视频网站高清观看视频 | 韩国成人在线视频| 伊人一区二区三区| 精品久久久久久久久久久久包黑料 | 日韩三级在线观看| 成人国产精品免费观看| 美日韩一区二区三区| 亚洲狼人国产精品| 国产午夜亚洲精品理论片色戒| 欧美日韩免费观看一区三区| 国产成人午夜99999| 日韩国产欧美三级| 亚洲欧美日韩一区二区| 久久先锋影音av鲁色资源网| 欧美色倩网站大全免费| www.色综合.com| 国模套图日韩精品一区二区| 亚洲成人777| 亚洲人成在线播放网站岛国| 久久女同精品一区二区| 欧美日本不卡视频| aaa欧美日韩| 高清国产午夜精品久久久久久| 久久福利资源站| 午夜久久电影网| 亚洲精品福利视频网站| 国产亚洲自拍一区| 日韩免费电影一区| 3d成人h动漫网站入口| 91福利国产精品| 99精品偷自拍| 成人看片黄a免费看在线| 精品亚洲成a人| 蜜桃一区二区三区在线| 午夜欧美大尺度福利影院在线看| 亚洲欧美二区三区| 国产精品国产三级国产普通话蜜臀 | 欧美亚洲国产一区二区三区va| 成人看片黄a免费看在线| 国产精品1区2区| 国产又黄又大久久| 美女被吸乳得到大胸91| 丝袜美腿成人在线| 亚洲午夜免费视频| 一区二区三区四区不卡在线 | 欧美剧情电影在线观看完整版免费励志电影 | 国产欧美日韩在线| 久久久久久久久久久99999|