Por aquí va una muy simple clase para hacer blurs (desenfocados) en actionscript 2.o que hice hace tiempo, pensaba integrarla con las tweening ecuations, o con algún paquete de tweenings, pero por desidia no la he vuelto a tocar.
Antes de que coja polvo, o peor aún quede obsoleta, la libero, por si alguien se anima a mejorarla o le sirve de un aprieto.

Cositas estupendas de la clase:
- La velocidad se pasa en segundos, independiente del framerate
- Actionscript 2.0 & MTASC ready.
- Control de todos los argumentos de blurFilter. (blurx, blury, quality)

TODO´s pal que se anime.
- integrar con ecuaciones de Penner ó
- integrar con algún paquete de tween.

Para sugerencias o bugs pliz, dadme un toque al correo.


[por aquí un ejemplo]

Actionscript:
  1. import flash.filters.BlurFilter;
  2. import mx.utils.Delegate;
  3. /**
  4. * @author Alejandro Sánchez Marcos
  5. * @usage
  6.         import com.electroduendes.tween.BlurTween;
  7.         var blurTween:BlurTween = new BlurTween(mc);
  8.         var initBlur:Object = {blurX:0, blurY:0, quality:3};
  9.         var finalBlur:Object = {blurX:50, blurY:5, quality:3};
  10.         a.onRelease = function() {
  11.                 blurTween.tween(initBlur, finalBlur, 1);
  12.         };
  13.         b.onRelease = function() {
  14.                 blurTween.tween(finalBlur, initBlur, 1);
  15.         };
  16. *
  17. */
  18. class com.electroduendes.tween.BlurTween {
  19.        
  20.         public var interval: Number = 40;
  21.         private var filter:BlurFilter;
  22.         private var blur_interval:Number;
  23.         private var mc:MovieClip;
  24.         private var quality : Number;
  25.         private var counter : Number;
  26.         private var iterations : Number;
  27.         private var diferenceX:Number;
  28.         private var diferenceY:Number;
  29.        
  30.         public function BlurTween(mc:MovieClip){
  31.                 this.mc = mc;
  32.                 filter = new BlurFilter();
  33.         }
  34.         public function tween(initBlur:Object, finalBlur:Object, seconds:Number) : Void {
  35.                 counter = 0;
  36.                 this.iterations = Math.ceil(seconds*1000/interval);
  37.                 // apply init blur     
  38.                 filter.blurX = initBlur.blurX;
  39.                 filter.blurY = initBlur.blurY;
  40.                 filter.quality = initBlur.quality;
  41.                 mc.filters = [filter]
  42.                 // calculate difference 
  43.                 diferenceX  = finalBlur.blurX - initBlur.blurX;
  44.                 diferenceY = finalBlur.blurY - initBlur.blurY;   
  45.                 this.quality = finalBlur.quality;
  46.                 // if we have something to blur or unblur...
  47.                 clearInterval(blur_interval);
  48.                 if (diferenceX!=0 && diferenceY!=0)
  49.                         blur_interval = setInterval(Delegate.create(this, applyTween), interval);
  50.  
  51.         }
  52.         private function applyTween() : Void {
  53.                 counter++;     
  54.                 filter.blurX += diferenceX/iterations;
  55.                 filter.blurY += diferenceY/iterations;
  56.                 filter.quality = quality;
  57.                 mc.filters = [filter];
  58.                 if (counter == iterations) clearInterval(blur_interval);
  59.         }
  60. }

Está en ingles por mi propósito hace un año de empezar a codificar en este idioma. Sé que a los hispanohablantes nos cuesta algo trabajar con nombres de variables y comentarios en inglés, pero por contra tengo que decir que después de tener que pelearme con un ejemplo de un código que sólo encontré en un blog francés escrito en francés, al menos, por mayoría democrática debo acostumbrarme al inglés para el código que publico.