flash on 2015-9-16

by mutantleg
♥0 | Line 63 | Modified 2015-09-16 06:33:35 | 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/0Cgy
 */

package {
    import flash.events.Event;
    import flash.display.Sprite;
    public class FlashTest extends Sprite {
        public function FlashTest() {
   
           vecHeight = new Vector.<Number>(32, 0);
           var i:int; var num:int;
           num = vecHeight.length;
           for (i = 0; i < num; i+=1)
           { vecHeight[i] = Math.random() * 256 + 128; } 
               
   
           stage.addEventListener(Event.ENTER_FRAME, onEnter);
        }//ctor
   
        public var vecHeight:Vector.<Number>;
        public var cw:Number = 16;
        
        public function getHeight(ax:Number):Number
        {
          var tx:int;
          tx = Math.floor(ax / cw);
          if (tx < 0) { return vecHeight[0]; }
          if (tx >= vecHeight.length) { return vecHeight[vecHeight.length-1]; }
            
          var h0:Number; var h1:Number; var u:Number;
          h0 = vecHeight[tx];
          if (tx == vecHeight.length - 1) { return h0; }
          h1 = vecHeight[tx+1];   
          u = (ax/cw) - tx;
          return h0 + (h1-h0) * u;            
        }//geth
        
   
       public function onEnter(e:Event):void
       {
           var mx:Number; var my:Number;
           
           graphics.clear();
           graphics.lineStyle(2, 0);
           
           
           mx = stage.mouseX; my = stage.mouseY;
           
           h = getHeight(mx);
           graphics.drawCircle(mx, h, 4);
           
           var h:Number;
           var i:int; var num:int;
           num = vecHeight.length;
           for (i = 0; i < num; i+=1)
           {
              h= vecHeight[i];
              if (i == 0) { graphics.moveTo(i*cw, h); }
              graphics.lineTo(i*cw, h);
                          
           }//nexti
           
           
           var ax:Number; var ay:Number;
           var bx:Number; var by:Number;
           var kx:Number; var ky:Number;
           ax = 32; ay = 32;
           bx = 300; by = 300;
           
           ax = mx; ay = my;
           
           graphics.moveTo(ax,ay);
           graphics.lineTo(bx,by);
           
           var t:Number;
           for (t = 0; t < 1; t+=0.01)
           {
             kx = ax + (bx-ax) * t;
             ky = ay + (by-ay) * t; 
             if (getHeight(kx) < ky) { break; }
           }//nextt
           
           graphics.drawCircle(kx,ky, 4);
           
           
       }//onenter
        
        
        
    }//classend
}