flash on 2013-3-11

by J.J
@author Javid Jafari
♥2 | Line 66 | Modified 2013-03-12 05:03:49 | MIT License | (replaced)
play

Related images

ActionScript3 source code

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

package {
    import flash.geom.Point;
    import flash.filters.DisplacementMapFilter;
    import flash.events.MouseEvent;
    import flash.geom.Matrix;
    import flash.filters.BlurFilter;
    import flash.display.Shape;
    import flash.display.BitmapData;
    import flash.system.LoaderContext;
    import flash.display.Bitmap;
    import flash.events.Event;
    import flash.net.URLRequest;
    import flash.display.Loader;
    import flash.display.Sprite;
    //@author Javid Jafari
    public class FlashTest extends Sprite {
        private var loadedBMP:Bitmap;
        private var h:Number,w:Number;
        private var dpbmp:Bitmap;
        private var circlebmp:Bitmap;
        private var bf:BlurFilter;
        private var mtrx:Matrix;
        private var dpf:DisplacementMapFilter;
        public function FlashTest() {
            // write as3 code here..
            var loader:Loader=new Loader();
            loader.load(new URLRequest('http://assets.wonderfl.net/images/related_images/7/71/7167/7167c7669002fd860a056633a132bda1ca98051a'),new LoaderContext(true));
            loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onloaded)
        }
        private function onloaded(e:Event):void{
            w=stage.stageWidth,h=stage.stageWidth;
            loadedBMP=e.target.content as Bitmap;
           
            dpbmp=new Bitmap;
            dpbmp.bitmapData=new BitmapData(w,h,false,0x000000);
            var circle:Shape=new Shape;
            circle.graphics.beginGradientFill('linear',[0xff0000,0x00ff00],[1,1],[50,255]);
            circle.graphics.drawCircle(0,0,20);
            circle.filters=[new BlurFilter(20,20)];
            circlebmp=new Bitmap;
            var offset:uint=20;
            circlebmp.bitmapData=new BitmapData(circle.width+offset,circle.height+offset,true,0x00000000);
            circlebmp.bitmapData.draw(circle,new Matrix(1,0,0,1,circlebmp.bitmapData.width/2,circlebmp.bitmapData.height/2));
            bf=new BlurFilter(50,50)
            dpf=new DisplacementMapFilter(null,new Point,1,2,50,50,'color')
            mtrx=new Matrix;
            stage.addEventListener('enterFrame',loop)
            stage.addEventListener(MouseEvent.MOUSE_DOWN,on_mouseDown);
            stage.addEventListener(MouseEvent.MOUSE_UP,on_mouseUp)
            addChild(loadedBMP);

        }
         private function on_mouseDown(e:MouseEvent):void{
            stage.addEventListener(MouseEvent.MOUSE_MOVE,on_mouseMoving);
         }
          private function on_mouseUp(e:MouseEvent):void{
            stage.removeEventListener(MouseEvent.MOUSE_MOVE,on_mouseMoving);
         }
          private function on_mouseMoving(e:MouseEvent):void{
              mtrx.tx=mouseX-circlebmp.width/2;
              mtrx.ty=mouseY-circlebmp.height/2;
              dpbmp.bitmapData.draw(circlebmp,mtrx);
         }
        private function loop(e:Event):void{
           dpbmp.bitmapData.applyFilter(dpbmp.bitmapData,dpbmp.bitmapData.rect,dpbmp.bitmapData.rect.topLeft,bf);
           dpf.mapBitmap=dpbmp.bitmapData;
           loadedBMP.filters=[dpf];
         }
    }
}