flash on 2016-10-31

by mutantleg
♥0 | Line 81 | Modified 2016-10-31 03:29:00 | 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/8xgd
 */

package {
    import flash.ui.Keyboard;
    import flash.events.KeyboardEvent;
    import flash.events.Event;
    import flash.display.Sprite;
    public class FlashTest extends Sprite {
        public function FlashTest() {
     
            stage.addEventListener(KeyboardEvent.KEY_DOWN, onKdown);
            stage.addEventListener(KeyboardEvent.KEY_UP, onKup);
            stage.addEventListener(Event.ENTER_FRAME, onEnter);            
        }//ctor
        
        public function onKdown(e:KeyboardEvent):void { vecKey[e.keyCode] = true; }
        public function onKup(e:KeyboardEvent):void { vecKey[e.keyCode] = false; }
        public var vecKey:Vector.<Boolean> = new Vector.<Boolean>(512, false);
        
        
        public var cx:Number = 230;
        public var cy:Number = 230;
        public var ang:Number = 0;
        
        public var x0:Number = 230;
        public var y0:Number = 230;
        public var x1:Number = 250;
        public var y1:Number = 250;
        public var x2:Number = 230;
        public var y2:Number = 230;
        public var u:Number = 0;
        
        public var wx:Number = 0;
        public var wy:Number = 0;
        
        public var ts:int = 0;
        
        public function onEnter(e:Event):void
        {
            graphics.clear();
            graphics.lineStyle(2, 0);
            
            
            graphics.drawCircle(cx,cy, 8);
            graphics.moveTo(cx,cy);
            graphics.lineTo(cx+Math.cos(ang)*8, cy+Math.sin(ang)*8);
            
            var ms:Number; ms = 0;
            if (vecKey[Keyboard.UP] ) { ms = 0.1;}
            if (vecKey[Keyboard.DOWN] ) { ms = -0.1; }
            if (vecKey[Keyboard.LEFT] ) { ang-=0.1; }
            if (vecKey[Keyboard.RIGHT] ) { ang+=0.1; }
            
            // cx += Math.cos(ang) * ms;
           // cy += Math.sin(ang) * ms;
            

            u += ms;
                        
            x1 = x0 + Math.cos(ang)*32;            
            y1 = y0 + Math.sin(ang)*32;            
                        
            wx = x0+(x1-x0)*u;
            wy = y0+(y1-y0)*u;
            
           graphics.drawCircle(x0,y0, 4);
           graphics.drawCircle(x1,y1, 4);
            graphics.drawCircle(wx,wy, 4);
 
            graphics.drawCircle(x2,y2, 4);
            
            
            cx = wx+(x2-wx)*0.5;
            cy = wy+(y2-wy)*0.5;
            graphics.drawCircle(cx,cy, 8);
            
 
             var nx:Number; var ny:Number;
            
            if (u >= 1.0) 
            { 
              u = 0;
              x2 = x1; y2 = y1;
             // x1 += Math.cos(ang)*16;
             // y1 += Math.sin(ang)*16;
             nx = Math.cos(ang)*16;
             ny = Math.sin(ang)*16;
             x1 = cx + (ts==1?-ny:ny);
             y1 = cy + (ts==1?nx:-nx);
              x0 = x1; y0 = y1;
             // x1 = cx + Math.cos(ang)*16;
           //   y1 = cy + Math.sin(ang)*16;
              x1 +=  Math.cos(ang)*32;
              y1 +=  Math.sin(ang)*32;

              ts = ts == 1? 0:1;                            
            }
            
            if(u < 0)
            {
              u += 1;
              x2 = x0; y2 = y0;
  //            x1 = x0; y1 = y0;
 //             x0 -= Math.cos(ang)*16;
   //           y0 -= Math.sin(ang)*16;
             nx = Math.cos(ang)*16;
             ny = Math.sin(ang)*16;
             x1 = cx + (ts==1?-ny:ny);
             y1 = cy + (ts==1?nx:-nx);
              x0 = x1; y0 = y1;
              x0 -=  Math.cos(ang)*16;
              y0 -=  Math.sin(ang)*16;
              ts = ts == 1? 0:1;                            
                
            }
            
            
            
        }//onenter
        
    }//classend
}