flash on 2013-3-11
@author Javid Jafari
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];
}
}
}