flash on 2013-6-7

by mutantleg
♥0 | Line 81 | Modified 2013-06-07 19:18:30 | 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/i9oJ
 */

package {
    import flash.text.TextField;
    import flash.events.Event;
    import flash.display.Sprite;
    public class FlashTest extends Sprite {
        
        public function FlashTest() {
            // write as3 code here..
        
            deb = new TextField();
            deb.width = 400;
            deb.height = 400;
            deb.mouseEnabled = false;
            addChild(deb);
        
            stage.addEventListener(Event.ENTER_FRAME, onEnter);    
        }//ctor
        
        public var deb:TextField;
        
        
        public function onEnter(e:Event):void
        {
            graphics.clear();
            graphics.lineStyle(2, 0);
            
            var ax:Number;
            var ay:Number;
            var mx:Number;
            var my:Number;
            
            ax = 200;
            ay = 200;
            mx = mouseX;
            my = mouseY;
            
            graphics.moveTo(ax, ay);
            graphics.lineTo(mx, my);
            
            var u:Number;
            var kx:Number;
            var ky:Number;
            
            
            graphics.lineStyle(2, 0, 0.1);
            
            for (u = 0; u < 1.0; u += 0.1)
            {
                kx = ax + (mx - ax) * u;
                ky = ax + (my - ay) * u;
                
                graphics.drawCircle(kx, ky, 8);
                
            }//nextu
            
            var dx:Number;
            var dy:Number;
            var mag:Number;
            var rad:Number;
            var t:Number;
            rad = 16; 
            dx =  mx-ax;
            dy = my-ay;
            mag = Math.sqrt(dx*dx+dy*dy);
            if (mag < 1) { mag = 1;}
            
            t = rad / mag;
            
            deb.text = "mag: " + mag + "  u: " +t;
            
            graphics.lineStyle(2, 0xFF0000, 0.2);
            
            for (u = 0; u < 1.0; u += t)
            {
                kx = ax + (mx - ax) * u;
                ky = ax + (my - ay) * u;
                
                graphics.drawCircle(kx, ky, 8);
                
            }//nextu
            
            var nx:Number;
            var ny:Number;
            var ang:Number;
            
            ang = 0;
            
            ang = Math.atan2(my-ay, mx-ax) + 2.1; //  + 1.57;
            
            nx = mx + Math.cos(ang)*64;
            ny = my + Math.sin(ang)*64;
            
            graphics.drawCircle(nx, ny, 8);
            
            
            graphics.lineStyle(2,0xFF, 1);
            
            t = 0.1;
            
            for (u = 0; u < 1.0; u += t)
            {
                
                kx = getBezQuad(u, ax, nx, mx);
                ky = getBezQuad(u, ay, ny, my); 
                
                graphics.drawCircle(kx, ky, 8);
                
            }//nextu
            
        }//onenter
        
        public function getBezQuad(t:Number, x1:Number, x2:Number, x3:Number):Number
        {
            var ta:Number = (1 - t);
            //(1-t)2 = (1-t)(1-t)        // P(t) = (1-t)2 *P0  +  2(1-t)*t*P1 + t2*P2
                return ( (ta * ta) * x1 + 2 * (ta) * t * x2 + t * t * x3 );
        }//getbezier

        
    }//classend
}