flash on 2015-8-3

by mutantleg
♥0 | Line 83 | Modified 2015-08-03 05:21:05 | MIT License
play

ActionScript3 source code

/**
 * Copyright mutantleg ( http://wonderfl.net/user/mutantleg )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/1mP5
 */

package {
    import flash.geom.ColorTransform;
    import flash.geom.Rectangle;
    import flash.display.BitmapData;
    import flash.events.Event;
    import flash.display.Sprite;
    public class FlashTest extends Sprite {
        public function FlashTest() {

          skin = new BitmapData(64,64, false, 0);
          var i:int; var r:Rectangle; var c:uint;
          r = new Rectangle();
          r.width=1; r.height=64; 
          for (i=0;i<64;i+=1)
          { 
            r.x=i;
            c = 255- (i * 4);
            c = (c<<16)|(c<<8)|c;  
            skin.fillRect(r, c); 
          }//nexti

          var ct:ColorTransform;
          ct = new ColorTransform(1,1,1);
          r.x=0;r.width=64; r.height=1;
          for (i=0;i<64;i+=1)
          {
            r.y=i;
            ct.redOffset = i*-4;
            ct.greenOffset = i*-4;
            skin.colorTransform(r, ct);
              
          }//nexti
   //drawTri(skin, 0,0, 320, 15,   50, 280);


          graphics.beginBitmapFill(skin);
           graphics.drawRect(0,0,64,64);
          graphics.endFill();

         stage.addEventListener(Event.ENTER_FRAME, onEnter);            
        }//ctor
        
        public var skin:BitmapData;
        
      public function onEnter(e:Event):void
      {
          graphics.clear();
          //graphics.lineStyle(2, 0);
          
          cx = stage.mouseX; cy =stage.mouseY;
          
          var i:int; var k:int;
          var cw:Number; var ch:Number;
          cw=32*2;ch=32*2;
          for (i=0; i<8;i+=1)
          for (k=0;k<8;k+=1)
          {
            drawTri(skin, k*cw,i*ch,  k*cw+cw, i*ch,  k*cw, i*ch+ch);   
            drawTri(skin, k*cw+cw, i*ch,  k*cw, i*ch+ch,  k*cw+cw,i*ch+ch, 0.1 );                 
          }//nexti


          graphics.beginBitmapFill(skin);
           graphics.drawRect(0,0,64,64);
          graphics.endFill();
          
      }//onenter

      public var cx:Number = 230;      public var cy:Number = 230;
        
      public var gx:Number = 130;
      public var gy:Number = 300;  
        
      public function getMag(ax:Number, ay:Number):Number
      { return Math.sqrt(ax*ax + ay*ay); }  
        
      public var vecVert:Vector.<Number> = new Vector.<Number>(6, false);
      public var vecUv:Vector.<Number> = new Vector.<Number>(6, false); 
      public var vecFace:Vector.<int> = Vector.<int>([0,1,2]);
         
      public function drawTri(m:BitmapData, x0:Number,y0:Number,x1:Number,y1:Number,x2:Number,y2:Number, v:Number=0):void
      {
         vecVert[0] = x0; vecVert[1] = y0;
         vecVert[2] = x1; vecVert[3] = y1;
         vecVert[4] = x2; vecVert[5] = y2;
         
         var m0:Number;
         var m1:Number;
         var m2:Number;
         
         m0 = getMag(cx-x0, cy-y0);
         m1 = getMag(cx-x1, cy-y1);
         m2 = getMag(cx-x2, cy-y2);
 
         vecUv[0] = m0/265;  vecUv[1] = v;
         vecUv[2] = m1/265;  vecUv[3] = v;
         vecUv[4] = m2/265;  vecUv[5] = v;
         
         if (vecUv[0]>1)  {vecUv[0] =1;}
         if (vecUv[2]>1)  {vecUv[2] =1;}
         if (vecUv[4]>1)  {vecUv[4] =1;}


/*
         m0 = getMag(gx-x0, gy-y0);
         m1 = getMag(gx-x1, gy-y1);
         m2 = getMag(gx-x2, gy-y2);
 
         vecUv[1] = m0/465;
         vecUv[3] = m0/465;
         vecUv[5] = m0/465;
    
         if (vecUv[1]>1)  {vecUv[1] =1;}
         if (vecUv[3]>1)  {vecUv[3] =1;}
         if (vecUv[5]>1)  {vecUv[5] =1;}
 
 */
          
        graphics.beginBitmapFill(m, null,false,false);
           graphics.drawTriangles(vecVert,vecFace,vecUv);      
        graphics.endFill();   
          
      }//drawtri  
        
        
        
    }//classend
}