Comunidad de diseño web y desarrollo en internet online

problema con blur y movimiento

Citar            
MensajeEscrito el 23 Mar 2006 05:08 pm
hola
tengo un problema con el filtro blur de flash 8

tengo un clip ke contendrá unas fotos alineadas de forma horizontal
con un boton hago ke este clip avance horizontalmente 371.9 pixeles cada vez ke se clica el boton.
la idea es ke al avanzar el clip se desenfoque horizontalmente pero ke al ir deteniendose (tiene easing) valla volviendo a reenfocarse (volverse nítido otra vez) poco a poco, como en la realidad.

pero con el codigo ke he estado intentando hacer el clip aumenta el desenfoke y no vuelve a enfocarse

aki va un link para descargar el .fla (esta en flash 8)

http://www.trigo.cl/lucho/prueba_horizontal_blur.fla
pongo el codigo por si acaso:

Código :

/////
///EL CLIPA A MOVER SE LLAMA "main"
actual = main._x;
import flash.filters.BlurFilter;
blur = new BlurFilter(10, 0, 1);
/////
//FUNCION MOVIMIENTO EN EJE _X + BLUR (VERTICAL)
MovieClip.prototype.mueve_x = function(newx, easing) {
   mainOldX = this._x;
   this.onEnterFrame = function() {
      //AKI HAGO EL FILTRO BLUR
      mainMovement = mainOldX-this._x;
      blur.blurX = Math.floor(Math.abs(mainMovement));
      trace("mainMovement ="+mainMovement);
      this.filters = [blur];
      ////
      var aposx = newx-this._x;
      this._x += (aposx)/easing;
      if (Math.abs(newx-this._x)<1) {
         trace("función terminada");
         delete this.onEnterFrame;
         this._x = newx;
         actual = this._x;
         trace("Actual = "+actual);
      }
   };
};
///// CON ESTE BOTON AVANZO
avanzar_mc.onRelease = function() {
   main.mueve_x(371.9+actual, 4);
};


muchas gracias y hojala puedan ayudarme
ciau

Por inki

3 de clabLevel



 

safari
Citar            
MensajeEscrito el 23 Mar 2006 05:51 pm
El problema es que pones el blur en funcion de la posicion final del movie clip, no de la actual, yo he creado una nueva variable que controle eso y se la he añadido a la funcion, el código queda así.

Código :

/////
actual = main._x;
import flash.filters.BlurFilter;
blur = new BlurFilter(10, 0, 1);
/////
//FUNCION MOVIMIENTO EN EJE _X + BLUR (VERTICAL)
MovieClip.prototype.mueve_x = function(newx, easing) {
   mainOldX = this._x;
   this.onEnterFrame = function() {
      //AKI HAGO EL FILTRO BLUR
      mainMovement = mainOldX-this._x;
      var posicion:Number=main._x;
      blur.blurX = Math.floor(Math.abs(371.9+actual-posicion));
      trace("mainMovement ="+mainMovement);
      this.filters = [blur];
      ////
      var aposx = newx-this._x;
      this._x += (aposx)/easing;
      if (Math.abs(newx-this._x)<1) {
         trace("función terminada");
         delete this.onEnterFrame;
         this._x = newx;
         actual = this._x;
         trace("Actual = "+actual);
      }
   };
};
///// CON ESTE BOTON AVANZO
avanzar_mc.onRelease = function() {
   main.mueve_x(371.9+actual, 4);
   posicion=posicion+371.9;
};


Saludos :wink:

Por Johnny

Claber

1589 de clabLevel

4 tutoriales

  Héroes

firefox
Citar            
MensajeEscrito el 24 Mar 2006 04:22 pm
hola,
muchas gracias, SUPER :D

el unico problema ahora, es que agregué un boton para hacer retroceder el clip main la misma cantidad de pixeles cada vez que se clica. el mivimiento hacia atras funciona bie pero el blur solo se desenfoca y no vuelve a enfocarse.

lo hice asi:
/////
actual = main._x;
import flash.filters.BlurFilter;
blur = new BlurFilter(10, 0, 1);
/////
//FUNCION MOVIMIENTO EN EJE _X + BLUR (VERTICAL)
MovieClip.prototype.mueve_x = function(newx, easing) {
mainOldX = this._x;
this.onEnterFrame = function() {
//AKI HAGO EL FILTRO BLUR
mainMovement = mainOldX-this._x;
var posicion:Number = main._x;
blur.blurX = Math.floor(Math.abs(646.6+actual-posicion));
trace("mainMovement ="+mainMovement);
this.filters = [blur];
////
var aposx = newx-this._x;
this._x += (aposx)/easing;
if (Math.abs(newx-this._x)<1) {
trace("función terminada");
delete this.onEnterFrame;
this._x = newx;
actual = this._x;
hacia_atras = actual-646.6
trace("Actual = "+actual);
}
};
};


///// CON ESTE BOTON AVANZO
avanzar_mc.onRelease = function() {
main.mueve_x(646.6+actual, 4);
posicion = posicion+646.6;

};

retroceso_mc.onRelease = function() {
main.mueve_x(hacia_atras, 4);
//posicion = posicion+371.9;

};
que eta mal ??
mucahs gracias otra vez

:)

Por inki

3 de clabLevel



 

safari
Citar            
MensajeEscrito el 24 Mar 2006 06:00 pm
en vez de restarle la cantidad lo que debes hacer es sumarla, o por lo menos eso creo, prueba y ya me diras...

Por Johnny

Claber

1589 de clabLevel

4 tutoriales

  Héroes

firefox
Citar            
MensajeEscrito el 07 Abr 2006 03:13 pm
hola, gracias de nuevo
probé pero no funciona, aun sigue el problema con el boton retroceder. el efecto del blur solo se vuelbe a enfocar cuando avanzo hacia la derecha pero no para retroceder ya que queda desenfocado y no recupera el foco (nota: ahora el clip se mueve 646.6 pixeles ) :(

aki esta el codigo que uso ahora:

Código :

/////
espacio_a_mover = 646.6
actual = main._x;
import flash.filters.BlurFilter;
blur = new BlurFilter(10, 0, 1);
/////
//FUNCION MOVIMIENTO EN EJE _X + BLUR (VERTICAL)
MovieClip.prototype.mueve_x = function(newx, easing) {
   mainOldX = this._x;
   this.onEnterFrame = function() {
      //AKI HAGO EL FILTRO BLUR
      mainMovement = mainOldX-this._x;
      var posicion:Number = main._x;
      blur.blurX = Math.floor(Math.abs(espacio_a_mover+actual-posicion));
      trace("mainMovement ="+mainMovement);
      this.filters = [blur];
      ////CON ESTO MUEVO EL CLIP
      var aposx = newx-this._x;
      this._x += (aposx)/easing;
      if (Math.abs(newx-this._x)<1) {
         trace("función terminada");
         delete this.onEnterFrame;
         this._x = newx;
         ///guarda la posicion actual del clip
         actual = this._x;
         hacia_atras = actual-espacio_a_mover
         trace("Actual = "+actual);
      }
   };
};


///// CON ESTE BOTON AVANZO 
avanzar_mc.onRelease = function() {
   main.mueve_x(espacio_a_mover+actual, 4);
   posicion = posicion+646.6;
   
};
///// CON ESTE BOTON RETROCEDO
retroceso_mc.onRelease = function() {
   main.mueve_x(hacia_atras, 4);
   //posicion = posicion+371.9;
   
};




como lo podria solucionar ???


:roll:


gracias y saludos

Por inki

3 de clabLevel



 

safari
Citar            
MensajeEscrito el 07 Abr 2006 05:32 pm
es cuestion añadir o quitar el valor, haz una equacion y te sale, si ves que no te sale aun así vuelve a postear,ok??
(lo siento pero es que me pillas ocupado estos dias...) :wink:

Por Johnny

Claber

1589 de clabLevel

4 tutoriales

  Héroes

firefox
Citar            
MensajeEscrito el 11 Abr 2009 06:41 pm
Hola, estoy intentando justo lo mismo que tú y no encuentro solución, si lo has conseguido. ¿Podrías pasarme el fla?

Por chozov

4 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.