In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

forked from: MouseGrowEffect

// forked from milkmidi's MouseGrowEffect
// write as3 code here..
package {    
    import flash.display.*;
    import flash.events.Event;
    import flash.filters.DropShadowFilter;
    import flash.filters.GlowFilter;
    import flash.geom.Point;    

    [SWF(width = "500", height = "500", frameRate = "51", backgroundColor = "#000000", pageTitle = "milkmidi.com")]
    public class MouseGrowEffect extends Sprite
    {    
        private var dep:Number = 0;
        private var linearr:Array = new Array();
        private var dotarr:Array = new Array();
        private var draw_mc:Sprite = new Sprite();
        public function MouseGrowEffect() {
            this.addEventListener(Event.ADDED_TO_STAGE, onAdd2Stage);

        }
        
        private function onAdd2Stage(e:Event):void {
            this.addChild(draw_mc);
            var glow0:GlowFilter = new GlowFilter(0xffffff, 1, 16, 8, 1, 3, true, false);
            var glow1:GlowFilter = new GlowFilter(0xffff00, 1, 8, 8, 1, 3, false, false);
            var dropShadow0:DropShadowFilter = new DropShadowFilter(0, 90, 0xcc3300, 1, 64, 64, 5, 3, false, false, false);
            draw_mc.filters = [dropShadow0];            
            this.addEventListener(Event.ENTER_FRAME, onEventEnterFrame);
            
        }
        private function onEventEnterFrame(e:Event):void {
            var _obj:Object = new Object();
            if (mouseX != 0 && mouseX != 0) {
                _obj.x = mouseX;
                _obj.y = mouseY;
                dotarr.push(_obj);
            }
            if (dotarr.length > 25) {
                dotarr.splice(0,1);
            }
            var _g:Graphics = draw_mc.graphics;

            _g.clear();
            _g.lineStyle(0, 0xff0000, 100, true, "none", "round", "round", 1);                
            var _prevPoint:Point = null;
            var _dotLength:int = dotarr.length;        
            if(_dotLength <= 0) return;
            for (var i:int = 1; i < _dotLength; ++i) {        
                var _prevObj:Object = dotarr[i - 1];                                    
                var _currentObj:Object = dotarr[i];

                _g.lineStyle(i / 1.5  , 0xffffff, 1, true, "none", "round", "round", 1);                
                var _point:Point = new Point(_prevObj.x + (_currentObj.x - _prevObj.x) / 2, _prevObj.y + (_currentObj.y - _prevObj.y) / 2);                
                if (_prevPoint) {
                    _g.moveTo(_prevPoint.x,_prevPoint.y);
                    _g.curveTo(_prevObj.x,_prevObj.y,_point.x,_point.y);
                } else {
                    _g.moveTo(_prevObj.x,_prevObj.y);
                    _g.lineTo(_point.x,_point.y);
                }
                _prevPoint = _point;
            }
            if (_currentObj) {
                _g.lineTo(_currentObj.x, _currentObj.y);
            }        
            
        }        
    }
}