flash on 2011-3-30

by yama3
♥0 | Line 54 | Modified 2011-03-30 00:19:55 | MIT License
play

ActionScript3 source code

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

package {
    import flash.display.Bitmap;
    import flash.display.BitmapData;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import caurina.transitions.Tweener;
    import caurina.transitions.properties.CurveModifiers;
    import frocessing.color.ColorHSV;
    
    [SWF(width=465, height=465, frameRate=30, background=0xffffff)]
    
    public class FlashTest extends Sprite {
        private var _isMouseDown:Boolean = false;
        private var _hsv:ColorHSV;
        
        public function FlashTest() {
            CurveModifiers.init();
            
            _hsv = new ColorHSV(0, 1, 1, 1);
            
            stage.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
            stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
            stage.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
                        
        }
        
        private function enterFrameHandler(evt:Event):void {
            _hsv.h = ++_hsv.h % 360;
            if(!_isMouseDown) return;
            
            var sp:Sprite = new Sprite();
            sp.x = mouseX;
            sp.y = mouseY;
            sp.alpha = .3;
            sp.graphics.beginFill(_hsv.value);
            sp.graphics.drawCircle(0, 0, 20);
            sp.graphics.endFill();
            
            addChild(sp);
            
            var endX:Number = Math.random() * stage.stageWidth;
            var ctlX:Number = mouseX + (endX - mouseX) / 2;
            
            Tweener.addTween(sp, {
                x: endX,
                y: stage.stageHeight,
                _bezier: [{x: ctlX, y: 0}],
                time: 1,
                transition: "linear",
                onComplete: onTweenComplete,
                onCompleteParams: [sp]
            });
            
        }
        
        private function onTweenComplete(sp:Sprite):void {
            removeChild(sp);
        }
        
        private function mouseDownHandler(evt:MouseEvent):void {
            _isMouseDown = true;
        }
        
        private function mouseUpHandler(evt:MouseEvent):void {
            _isMouseDown = false;
        }
    }
}