forked from: Paint - 手ぶれ補正機能追加版

by tkinjo forked from forked from: Paint (diff: 24)
forked from: Paint - 手ぶれ補正機能追加
@author tkinjo
♥0 | Line 41 | Modified 2009-11-29 15:12:53 | MIT License
play

ActionScript3 source code

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

// forked from tkinjo's forked from: Paint
// forked from tkinjo's Paint
package  
{
    import flash.display.Bitmap;
    import flash.display.BitmapData;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import flash.geom.Matrix;
    import flash.geom.Point;
    
    [SWF(width="465", height="465", backgroundColor="0xffffff", frameRate="60")] 
    /**
     * forked from: Paint - 手ぶれ補正機能追加
     * @author tkinjo
     */
    public class Main extends Sprite
    {
        private const FRICTION:Number = 0.1;
        
        private var stabilizer:Point = new Point();
        private var mouseDown:Boolean;
        
        public function Main() 
        {
            stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
            stage.addEventListener(MouseEvent.MOUSE_UP,   mouseUpHandler);
            
            stage.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
        }
        
        private function mouseDownHandler( event:MouseEvent ):void {
            
            mouseDown = true;
            graphics.lineStyle( 10 );
            
            stabilizer.x = event.stageX;
            stabilizer.y = event.stageY;
            
            graphics.moveTo( stabilizer.x, stabilizer.y );
        }
        
        private function enterFrameHandler( event:Event ):void {
            
            if ( !mouseDown )
                return;
            
            stabilizer.x += ( stage.mouseX - stabilizer.x ) * FRICTION;
            stabilizer.y += ( stage.mouseY - stabilizer.y ) * FRICTION;
            
            graphics.lineTo( stabilizer.x, stabilizer.y );
        }
        
        private function mouseUpHandler( event:MouseEvent ):void {
            
            mouseDown = false;
            graphics.lineStyle();
        }
    }
}