flash on 2012-10-18

by mutantleg
♥0 | Line 102 | Modified 2012-10-24 19:57:10 | 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/2cNF
 */

package {
    import flash.display.Graphics;
    import flash.events.Event;
    import flash.display.Sprite;
    public class FlashTest extends Sprite {
        
        
        public function FlashTest() 
        {
            
            rect = new Sprite();
            var g:Graphics;
            g = rect.graphics;
            g.clear();
            g.lineStyle(2,0);
            g.drawRect(-8,-32,16,64);
            addChild(rect);
            
            rect2 = new Sprite();
            g = rect2.graphics;
            g.clear();
            g.lineStyle(2,0xFF0000);
            g.drawRect(-8,-32,16,64);
            addChild(rect2);
            
            
            stage.addEventListener(Event.ENTER_FRAME, onEnter);
        }//ctor
        
        public var rect:Sprite;
        public var rect2:Sprite;
        
        public var wx:Number = 160;
        public var wy:Number = 160;
        public var wa:Number = 0;
        
        public var bx:Number = 160;
        public var by:Number = 160;
        public var ba:Number = 0.15;
        
        public var ww:int = 0;
        
        public function onEnter(e:Event):void
        {
            graphics.clear();
            graphics.lineStyle(2, 0);
            
            var px:Number;
            var py:Number;
            
            px = mouseX;
            py = mouseY;
            
            graphics.drawCircle(px,py, 8);
            
            graphics.drawRect(wx-8, wy-8,16,16);
            graphics.drawRect(bx-8,by-8,16,16);
            graphics.moveTo(wx,wy);
            graphics.lineTo(bx,by);
            
            rect.x = wx;
            rect.y = wy;
            rect.rotation = wa * (180/3.1415);
            
            rect2.x = bx;
            rect2.y = by;
            rect2.rotation = ba * (180/3.1415);
            
            //bx = 180;
            //ba = 0.5;
            ww += 1;
            if (ww >= 10)
            {
            wa = ba;
            ba += 0.5;
            ww = 0;
            }
            
            var dx:Number;
            var dy:Number;
            var rx:Number;
            var ry:Number;
            var jx:Number;
            var jy:Number;
            var tx:Number;
            var ty:Number;
            
            var da:Number;
            var ra:Number;
            
            da = -wa;
            ra = -ba;
            
            dx = px - wx;
            dy = py - wy;
            
            
            tx = Math.cos(da)*dx - Math.sin(da)*dy;
            ty = Math.sin(da)*dx + Math.cos(da)*dy;
            
            dx = tx;
            dy = ty;
            
            rx = px - bx;
            ry = py - by;
            
            tx = Math.cos(ra)*rx - Math.sin(ra)*ry;
            ty = Math.sin(ra)*rx + Math.cos(ra)*ry;
         
             rx = tx;
             ry = ty;
            
            
            //jx = dx - rx;
           // jy = dy - ry;
            jx = rx - dx;
            jy = ry - dy;
            
            graphics.moveTo(px,py);
            graphics.lineTo(px+jx, py+jy);
            
            
            var kx:Number;
            var ky:Number;
            var ka:Number;
            kx = px - wx;
            ky = py - wy;
            ka = ba - wa;
            
            var fx:Number;
            var fy:Number;
            
            fx = Math.cos(ka)*kx - Math.sin(ka)*ky;
            fy = Math.sin(ka)*kx + Math.cos(ka)*ky;
            
            kx = fx + bx;
            ky = fy + by;
            
            graphics.lineStyle(2, 0x0000FF);
            graphics.drawCircle(kx,ky,8);
            
        }//onenter
        
        
    }//classend
}