forked from: sample colorHSV

by hakerlab forked from sample colorHSV (diff: 1)
♥0 | Line 37 | Modified 2015-10-20 19:19:47 | MIT License
play

ActionScript3 source code

/**
 * Copyright hakerlab ( http://wonderfl.net/user/hakerlab )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/06i6
 */

// forked from IPFix's sample colorHSV
// forked from Gobelins_IPFix's spider line
package {
    import flash.display.Sprite;
    import flash.events.MouseEvent;
    import frocessing.color.ColorHSV;
     [SWF(backgroundColor="#000000", width="465", height="465", frameRate="60")]

    public class FlashTest extends Sprite {
        private var points:Array = new Array();
        private var lastX:Number = stage.mouseX;
        private var lastY:Number = stage.mouseY;
        private var maxDist:uint = 45;
        private var color:ColorHSV = new ColorHSV(0);
        
        public function FlashTest() {            
            //call mouseMoveHandler when mouse move
            stage.addEventListener( MouseEvent.MOUSE_MOVE, mouseMoveHandler );
        }
        
        private function mouseMoveHandler(e:MouseEvent):void {
            graphics.lineStyle( 1, color.value, 0.3 );
            if( lastX != mouseX || lastY != mouseY ) {
                graphics.moveTo(lastX,lastY);
                graphics.lineTo(e.stageX,e.stageY);
                points.push( {x:e.stageX, y:e.stageY} );
                lastX = e.stageX;
                lastY = e.stageY;
                        
                for( var i:int = 0; i < points.length; i++ ) {
                     if( dist(points[i].x,points[i].y,lastX,lastY) < maxDist ){
                          graphics.moveTo(lastX,lastY);
                          graphics.lineTo(points[i].x,points[i].y);
                    }
                }
                        
           }
           graphics.endFill();
           color.h+=1;
        }
            
        //Calcule de la distance type manhattan
        private function dist(x1:Number,y1:Number,x2:Number,y2:Number):Number {
            return Math.abs(x1-x2)+Math.abs(y1-y2);
        }
    }
}