flash on 2014-12-25

by mutantleg
♥0 | Line 57 | Modified 2014-12-25 07:08:53 | 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/jDOM
 */

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

          vecBlob = new Vector.<xBlob>(0, false);
          var a:xBlob; var i:int;
          for (i = 0; i < 16; i++)
          {
            a = new xBlob();
            vecBlob.push(a);   
          }  

         stage.addEventListener(Event.ENTER_FRAME, onEnter);            
        }//ctor
        
        public var vecBlob:Vector.<xBlob>;
        
        public function onEnter(e:Event):void
        {
           graphics.clear();
           graphics.lineStyle(2, 0);
           
           var mx:Number; var my:Number;
           mx = stage.mouseX;
           my = stage.mouseY;
           
           graphics.drawCircle(mx, my, 8);
           
           var ax:Number; var ay:Number;
           var i:int; var a:xBlob; var num:int;
           num = vecBlob.length;
           ax = mx; ay = my;
           for (i = 0; i < num; i++)
           {
            a = vecBlob[i];
            
            
            
            //a.cx += (ax - a.cx) *0.1;
            //a.cy += (ay - a.cy) *0.1;
            
           // var ang:Number;
           // ang = Math.atan2(ay-a.cy, ax-a.cx);
          
          var nx:Number; var ny:Number;
             var m:Number;
             var r:Number;
             r = 16;
            m = getMag(a.cx-ax, a.cy-ay);       
            if (m == 0) { m = 0.1; }
            nx = (ax-a.cx) / m;
            ny = (ay-a.cy) / m;
            a.cx += nx * (m-r);// * 0.5;
            a.cy += ny * (m-r);// * 0.5;
            
            //a.vx = nx; a.vy = ny;
            //a.vy+=0.4
            //a.cy+=1;
            
            
            a.cx += a.vx;
            a.cy += a.vy;
            
            
            graphics.drawCircle(a.cx, a.cy, 8);
            
            ax = a.cx; ay = a.cy;
            
           }//nexti
            
        }//onenter
        
        public function getMag(ax:Number, ay:Number):Number
        { return Math.sqrt(ax*ax+ay*ay); }
        
    }//classend
}

internal class xBlob
{
  public var cx:Number = 0;
  public var cy:Number = 0;  
  
  public var vx:Number = 0;
  public var vy:Number = 0;
  
    
}//xblob