flash on 2016-3-30

by mutantleg
♥0 | Line 78 | Modified 2016-03-30 06:31:46 | 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/AVYG
 */

package {
    import flash.text.TextField;
    import flash.events.Event;
    import flash.display.Sprite;
    public class FlashTest extends Sprite {
        public function FlashTest() {
  
          deb = new TextField();
          deb.width=320;deb.height=240;
          deb.mouseEnabled=false;
          addChild(deb);
  
          stage.addEventListener(Event.ENTER_FRAME, onEnter);          
        }//ctor
        
        public var deb:TextField;
        
        public function onEnter(e:Event):void
        {
            var mx:Number; var my:Number;
            mx = stage.mouseX; my = stage.mouseY;
            
            graphics.clear();
      //      graphics.lineStyle(2, 0);

   //         graphics.lineStyle(2, 0x808080);
                     
            var ax:Number; var ay:Number;
            var bx:Number;
            
            ax = 100;
            bx = 300;
            ay = 200;
            
            graphics.drawCircle(ax,ay,4);
            graphics.drawCircle(bx,ay,4);
            
            graphics.moveTo(ax,ay);
            graphics.lineTo(bx,ay);
            
            
            var ix:Number;
            if (mx <ax) {ix = ax;}
            else if (mx >bx) { ix=bx;}
            else {ix=mx;}
            
//            graphics.drawCircle(ix,ay,8);
            
            graphics.drawCircle(ix,ay-8,8);
            
            var w:Number;
            w = ax - mx;
            w = ax -mx + (bx-ax)*0.5;
            w = (ax -ix) + (bx-ax)*0.5;
            w = ( (ax -ix) + (bx-ax)*0.5) / (bx-ax);
            w = 0.5 - (Math.abs(w));
            w*=2;
            
            if (w<0.3) {w=0.3;}
            
            deb.text = ""+w;
            
            
          //  graphics.moveTo(ix, ay+16);            graphics.lineTo(ax,ay);   
          //  graphics.moveTo(ix, ay+16);            graphics.lineTo(bx,ay);
            
            graphics.lineStyle(2, 0);
                    
            var kx:Number;    var ky:Number;
            var t:Number;
            for(t=0;t<1;t+=0.1)
            {
              kx = getBez(ax,ix,bx, t);
             // ky = getBez(ay,ay+32,ay,t );
              ky = getBez(ay,ay+64*w,ay,t );

 //             kx = getBez2(ax,ix,ix,bx, t);
  //            ky = getBez2(ay,ay+32*w,ay+40*w,ay,t );
              
              if (t==0){graphics.moveTo(kx,ky);} 
              graphics.lineTo(kx,ky); 
                
            }//nextt
        
        var u:Number;    
            for(t=0;t<1;t+=0.1)
            {
          //    kx = getBez2(ax,ix,ix,bx, t);
              kx = ax+(bx-ax)*t;
            // u = (bx-kx) / (bx-ax);
     
   //           ky = getBez2(ay,ay+16*w,ay+32*w,ay,t );
   //           ky = getBez2(ay,ay+16*w,ay+75*w,ay, u );
             ky = getBez(ay,ay+64*w,ay,t );
         //  ky = getBez(ay,ay+64*w,ay,u );

              graphics.drawCircle(kx,ky,12);
            
            }//nextt
   
//            t = (bx-ax) / (bx-ix);
            t = (bx-ix) / (bx-ax);
            deb.text=""+t;
 
    //        ky = getBez2(ay,ay+16*w,ay+75*w,ay,t );
              ky = getBez(ay,ay+64*w,ay,t );

            graphics.drawCircle(ix,ky-16,8);
                    
 
            
        }//onenter
        
            public function getBez(x0:Number, x1:Number, x2:Number, t:Number):Number
            {
              var k0:Number; var k1:Number;
              k0 = x0 + (x1 - x0) * t; k1 = x1 + (x2 - x1) * t; 
              return k0 + (k1 - k0) * t;     
            }//getbez
            
            
           public function getBez2(x0:Number, x1:Number, x2:Number, x3:Number, t:Number):Number
            {
              var k0:Number; var k1:Number; var k2:Number;
              k0 = x0 + (x1 - x0) * t; k1 = x1 + (x2 - x1) * t;  k2 = x2 + (x3 - x2) * t;
              k0 = k0 + (k1 - k0) * t; k1 = k1 + (k2 - k1) * t;
              return k0 + (k1 - k0) * t;     
            }//getbez2
    
            
            
    
    }//classend
}