flash on 2016-9-12

by mutantleg
♥0 | Line 71 | Modified 2016-09-12 05:22:21 | 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/EXiq
 */

package {
    import flash.events.MouseEvent;
    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(MouseEvent.MOUSE_UP, onMup); 
           stage.addEventListener(MouseEvent.MOUSE_DOWN, onMdown); 
           stage.addEventListener(Event.ENTER_FRAME, onEnter); 
        }//ctor
        
        public function onMdown(e:MouseEvent):void { mbutton = 1; }
        public function onMup(e:MouseEvent):void { mbutton = 0; }
        
        public var deb:TextField;
        
        public var mbutton:int = 0;
        
        public var cx:Number = 235;
        public var cy:Number = 235;
        public var vx:Number = 0;
        public var vy:Number = 0;
        
        public var ang:Number = 1.57*3;
        public var px:Number = 200;
        public var py:Number = 350;
        
        public var gt:int = 0;
        
        public function onEnter(e:Event):void
        {
            graphics.clear();
            graphics.lineStyle(2, 0);

            if (mbutton > 0) { cx= stage.mouseX; cy= stage.mouseY; vx=0; vy=0; }

         //   ang+=0.01;
         
         /*
         gt +=1;
         if (gt %80 == 0)
         { ang = Math.random()*6.28; 
           px = 235 + Math.random()*300-150;
           py = 235 + Math.random()*300-150;
         }
         */
              ang = 1.57*3.5;

             //  ang = 1.57*3.95;

              //  vx+=-0.03;
            
            var nx:Number; var ny:Number;
            nx = Math.cos(ang);
            ny = Math.sin(ang);
            
            var ta:Number;
            ta = Math.atan2(stage.mouseY-cy, stage.mouseX-cx);
            vx += Math.cos(ta)*0.5;
            vy += Math.sin(ta)*0.5;
      
              vx+= nx*-0.3;
              vy+= ny*-0.3;      
            
            var dist:Number;
            dist = (cx-px)*nx + (cy-py)*ny;
            
              var dot:Number;
              dot = nx*vx + ny*vy;
            
            deb.text = " dist " + dist.toFixed(2) + "\n vx " + vx + "\n vy " + vy
            + "\n nx " + nx + "\n ny " +ny + " \n dot " + dot;
            
            if (dist < 16 && dot < 0)
            {
              //dot*=1.5;
              
              vx -= nx * dot;
              vy -= ny * dot;  
              
              if (dist < 15 && dot < 0)
              {
               dist = 16-dist;
               cx += nx*dist;               
               cy += ny*dist;  
              }
            }//endif
            
            cx += vx; 
            cy += vy;
            
            graphics.drawCircle(cx,cy, 16);
            
            
            
            //graphics.drawCircle(px, py, 4);
            graphics.moveTo(px,py);
            graphics.lineTo(px+ny*256*2, py+nx*-256*2);
            graphics.moveTo(px,py);
            graphics.lineTo(px+ny*-256*2, py+nx*256*2);
            graphics.moveTo(px,py);
            graphics.lineTo(px+nx*16, py+ny*16);
            
        }//onenter
        
    }//classend
}