forked from: flash on 2009-10-6

by yd_niku forked from flash on 2009-10-6 (diff: 20)
♥0 | Line 66 | Modified 2009-10-06 20:38:54 | MIT License | (replaced)
play

ActionScript3 source code

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

// forked from yd_niku's flash on 2009-10-6
package {
    import flash.display.*;
    import flash.events.*;
    import flash.filters.*;
    import flash.net.*;
    import flash.geom.*;
    import flash.system.*;
    
    public class FlashTest extends Sprite {
        public function FlashTest() {
            if( stage ) init();
            else addEventListener( Event.ADDED_TO_STAGE, init );
        }
        private function init(e:Event=null):void {
            stage.addEventListener( Event.RESIZE, resize );
            resize();
            
            var loader:Loader= new Loader();
            loader.contentLoaderInfo.addEventListener( Event.COMPLETE, loadComplete );
            var req:URLRequest = new URLRequest("http://assets.wonderfl.net/images/related_images/0/09/0975/0975e3fcebd91b0fa8b202ea2997e512772b154e");
            var context:LoaderContext = new LoaderContext( true );
            loader.load( req, context );
        }
        private var _canvas:BitmapData;
        private var _source:BitmapData;
        private var _map:BitmapData;
        private function loadComplete (e:Event) :void {
            _source= new BitmapData(rect.width,rect.height,false,0);
            _canvas = _source.clone();
            _map = _source.clone();
            
            addChild( new Bitmap( _canvas ) );
            
            _source.draw( e.target.loader as Loader );
            
            var mapdisplay:DisplayObject = addChild( new Bitmap(_map) );
            mapdisplay.alpha = 0;
            
            _disp.componentX = 1;
            _disp.componentY = 2;
            _disp.scaleX = _disp.scaleY = -2;
            _disp.mode = DisplacementMapFilterMode.COLOR;
            _disp.color = 0xFFFFFF;
            _disp.alpha= 1;
            
            _canvas.draw( _source );
            
            addEventListener( Event.ENTER_FRAME, update );
        }
        
        private var _scroll:Point=new Point;
        private var _scrollAngle:Number= 0;
        private var _distPoint:Point = new Point;
        
        private var _ctf:ColorTransform = new ColorTransform( 1.02, 1.02, 1.02, 1, 3, 3, 3 );
        
        private var _blur :BlurFilter = new BlurFilter();
        private var _disp:DisplacementMapFilter = new DisplacementMapFilter();
        private function update(e:Event):void {
             var map:BitmapData = new BitmapData(rect.width,rect.height,false,0);

            map.perlinNoise( 128, 128, 1, 0, true, true, 3, false, [_scroll] );
            
            _map.draw( map );
            
            _disp.mapBitmap = map;
            
            //_canvas.draw( _source );
            _canvas.applyFilter( _canvas, _canvas.rect, _distPoint, _disp );
            _canvas.applyFilter( _canvas, _canvas.rect, _distPoint, _blur );
            
            _canvas.colorTransform( _canvas.rect, _ctf );
            
        }
        public var rect:Rectangle = new Rectangle();
        public var center:Point = new Point();
        private function resize(e:Event=null):void{
            rect.width = stage.stageWidth;
            rect.height= stage.stageHeight;
            
            center.x=  rect.width/2>>0;
            center.y = rect.height/2>>0;
        }
    }
}