flash on 2015-7-8

by mutantleg
♥0 | Line 63 | Modified 2015-07-08 01:03:58 | 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/vwSa
 */

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


           stage.addEventListener(Event.ENTER_FRAME, onEnter);            
        }//ctor
 
        public function distConst(a:xAct, b:xAct, rest:Number):void
        {
            graphics.moveTo(a.cx,a.cy);
            graphics.lineTo(b.cx,b.cy);
            var dx:Number; var dy:Number; var mag:Number;
            dx = a.cx-b.cx;           dy = a.cy -b.cy;
            mag = Math.sqrt(dx*dx+dy*dy);
            if (mag == 0) {mag=0.01;}
            dx /=mag; dy/=mag;
            mag = rest-mag; mag*=0.5;
            dx*=mag; dy*=mag;
            a.cx += dx; a.cy+=dy;
            b.cx += -dx;  b.cy+=-dy;
        }//distconst
 
        public function drawAct(a:xAct):void
        { graphics.drawCircle(a.cx,a.cy, 8); }


        public var vecAct:Vector.<xAct>;
        public var tempAct:xAct = new xAct();
        
        public function onEnter(e:Event):void
        {
            graphics.clear();
            graphics.lineStyle(2,0);
            
            if (vecAct == null)
            {
              vecAct = new Vector.<xAct>(0,false);
              vecAct.push(new xAct());
              vecAct.push(new xAct());
              vecAct.push(new xAct());
              vecAct.push(new xAct());
                 
                 
            }//endif
            
            
            var d:Number;
            var mx:Number; var my:Number;
            mx = stage.mouseX; my = stage.mouseY;
                tempAct.cx = mx; tempAct.cy= my;
                distConst(tempAct, vecAct[3],64);

            d=32+16;
            for (i=0;i<8;i++)
            {
                vecAct[0].cx = 230; vecAct[0].cy=230;            

                distConst(vecAct[2], vecAct[3],d);
                distConst(vecAct[1], vecAct[2],d);                
                distConst(vecAct[0], vecAct[1],d);
            }//nexti
 
             var i:int; var num:int; num = vecAct.length;
             for(i=0;i<num;i++)
             { 
              drawAct(vecAct[i]);           
             }           
            
        }//onenter
        
    }//classend
}

internal class xAct
{
  public var cx:Number = 0;
  public var cy:Number = 0;
    
}//xact