from_ greenass hansune
As 3.0



const IN:String = "in";
const OUT:String = "out";

function BlurInout(stg:DisplayObjectContainer,mc:DisplayObject, inout:String):void{
 
 var displayObject:DisplayObject = mc;
 displayObject.cacheAsBitmap = true;
 
 var blurX:Number;
 var blurY:Number;
 var bluring:Number;
 const quality:int = 3;
 const step:int = 20;
 
 if(inout == "in"){
  displayObject.visible = true;
  displayObject.alpha = 0;
  blurX = step;
  blurY = step;
  bluring = -1.0;
  stg.addChild(displayObject);
 } else {
  blurX = 0;
  blurY = 0;
  bluring = 1.0;
 }
 
 //var count:int = 0;
 var blurFilter:BlurFilter;
 var myFilters:Array;
 var timer:Timer = new Timer(30,step*2);
 timer.addEventListener(TimerEvent.TIMER, BlurProcess);
 timer.addEventListener(TimerEvent.TIMER_COMPLETE, BlurProcessOut);
 timer.start();
 
 function BlurProcess(e:TimerEvent):void{
  blurFilter = new BlurFilter(blurX,blurY,quality);
  myFilters = new Array();
  myFilters.push(blurFilter);
  displayObject.filters = myFilters;
 
  blurX += bluring;
  blurY = blurX;
  //count ++;
  //if(count > step){
   displayObject.alpha -= (bluring / step*2);
  //}
 }
 function BlurProcessOut(e:TimerEvent):void{
  timer.stop();
  timer = null;
  if(inout != "in"){
   stg.removeChild(displayObject);
  }
 }
 
}