DistortionButton

by shaman
♥0 | Line 62 | Modified 2010-01-24 22:41:42 | MIT License
play

ActionScript3 source code

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

package 
{
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	import flash.display.BitmapDataChannel;
	import flash.filters.DisplacementMapFilter;
	import flash.text.TextFormatAlign;
	import flash.text.TextFormat;
	import flash.text.TextField;
	import flash.display.Graphics;
    import flash.display.Sprite;
	[SWF (width="600",height="600",backgroundColor="#efefef" )]    
    public class DistortionButton extends Sprite 
    {
    		private var button:Sprite;
    		private var dfilter:DisplacementMapFilter;
    		private var dfilterMap:BitmapData;
    		
        public function DistortionButton() 
        {
      		init();  		
         
            
        }
        private function init():void
        {
        		button=new Sprite;
        		addChild(button);
        		prepareButton();
        		prepareDistortion();
        		onResize();
        }
        private function prepareDistortion():void
        {
        		dfilterMap=new BitmapData(128,128,false,0);
        		dfilterMap.perlinNoise(64,64,4,2010,false,false,BitmapDataChannel.RED,true);
        		addChild(new Bitmap(dfilterMap));
        		
    			dfilter=new DisplacementMapFilter();
    			dfilter.componentX=BitmapDataChannel.RED;    	
    			dfilter.scaleX=10;
    			//dfilter.mapBitmap=new BitmapData;
        }
 		private function prepareButton():void
 		{
 			var g:Graphics=button.graphics;
 			g.lineStyle(2,0);
 			g.beginFill(0x005eef,1);
 			g.drawRoundRect(0,0,200,100,10,10);
 			var tf:TextFormat=new TextFormat; 			
 			tf.size=25;
 			tf.color=0xffffff;
 			tf.font="Verdana";
 			var t:TextField=new TextField; 			
 			t.text="Button";
 			t.setTextFormat(tf);
 			button.addChild(t);
 			t.x=55;
 			t.y=27; 			
 		}       
 		private function onResize():void
 		{
 			button.x=(stage.stageWidth-button.width) >> 1;
 			button.y=(stage.stageHeight-button.height) >> 1; 			
 		}       
    }
}