flash on 2014-12-11

by mutantleg
♥0 | Line 70 | Modified 2014-12-11 04:31:27 | 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/uWlj
 */

package {
    import flash.text.TextField;
    import flash.events.MouseEvent;
    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(MouseEvent.MOUSE_DOWN, onMdown);
           stage.addEventListener(MouseEvent.MOUSE_UP, onMup);            
           stage.addEventListener(Event.ENTER_FRAME, onEnter); 
        }//ctor

        public var deb:TextField;
        

        public function onMdown(e:MouseEvent):void     { mdown = 1; }        
        public function onMup(e:MouseEvent):void      { mdown = 0; }

        public var mdown:int = 0;
        
        public var cx:Number = 230;
        public var cy:Number = 230;
        public var vx:Number = 0;
        public var vy:Number = 0;
        
        public var state:int = 0;

        public function onEnter(e:Event):void
        {
            var mx:Number; var my:Number;
            mx = stage.mouseX; my = stage.mouseY;
            
            deb.text =""+vy.toFixed(3);
            
            
            vx*=0.99;     vy*=0.99;
            
            vy += 0.2;
            
            if (vx > 0 && cx > 465-16) { vx*=-0.5; } 
            if (vx < 0 && cx < 16) { vx*=-0.5; } 
            if (vy > 0 && cy > 365-16) { if (vy<0.7){vy=0;} else { vy*=-0.5;} cy = 365-16; } 
            if (vy < 0 && cy < 16) { vy*=-0.5; } 
            
            
            cx+=vx;    cy+=vy;
            
            if (state == 0 && mdown == 1)
            { state = 1;  }
    
            if (state == 1 && mdown == 0)            
            {
                state =0;
              var ang:Number;
              var mag:Number;
              ang = Math.atan2(cy-my,cx-mx);
              mag = getMag(cx-mx,cy-my);
              mag -=30;
              if (mag < 0) { mag = 0; }   
              if (mag > 80) { mag = 80; }
              mag *= 0.2;   
                 
              vx += Math.cos(ang)*mag;
              vy += Math.sin(ang)*mag;   
            }//endif
            
            
            graphics.clear();
            graphics.lineStyle(2,0);
            
            graphics.drawCircle(cx,cy, 16);
           
           graphics.beginFill(0,1);
            graphics.drawEllipse(cx-12,365, 24,3);
           graphics.endFill();
           
           if (state == 1)
           {
            graphics.lineStyle(2,0);            
            graphics.moveTo(cx,cy);
            graphics.lineTo(mx,my);
           } 
            
        }//onenter

        public function getMag(ax:Number, ay:Number):Number
        { return Math.sqrt(ax*ax+ay*ay); }
 

    }//classend
}