Comunidad de diseño web y desarrollo en internet online

Boton que mueve un clip + easing

Citar            
MensajeEscrito el 05 Ene 2010 06:05 pm
Hola amigos de CL. Luego de recorrer varios post sobre easing, tween, etc. no consigo llegar a una solución a mi problema: mover un clip mediante un botón, pero a la vez que dicho clip se mueva con suavizado (easing?).
Tengo este código que mueve el clip hasta un límite, pero me falta el suavizado y no sé como lograrlo.

Código ActionScript :

//mi botón se llama alaiz y el clip se llama plano
//consigo que plano se desplace y vaya disminuyendo la distancia cuanto más se acerca a un límite, en este caso 270
alaiz.onRelease = function(){
   velo = 0.5;
   Xpos = 10;
   Xa = plano._x;
   Xdiff = Xpos-Xa;
   Xmove = Xdiff/7;
   plano._x = Xa+Xmove;
   if(plano._x < 270){
   plano._x += 20 * velo;
   }
}

Desde ya muchas gracias por su ayuda.

Por CRD

80 de clabLevel



Genero:Masculino  

Diseño Filete Ilustración

msie8
Citar            
MensajeEscrito el 05 Ene 2010 06:18 pm
muy simple, fijate en tu código, las acciónes se realizan al onRelease en alaiz, no le has indicado que haga las acciones varias veces durante cierto tiempo, entonces simplemente dile que lo haga en cada fotograma entrante:

Código ActionScript :

alaiz.onRelease = function(){ 
   plano.onEnterFrame = function(){
      velo = 0.5; 
      Xpos = 10; 
      Xa = plano._x; 
      Xdiff = Xpos-Xa; 
      Xmove = Xdiff/7; 
      plano._x = Xa+Xmove; 
      if(plano._x < 270){ 
      plano._x += 20 * velo; 
      } 
   }
} 

^^ espero te sirva
Hasta Luego!

Por hormy1

Claber

124 de clabLevel



 

firefox
Citar            
MensajeEscrito el 05 Ene 2010 09:21 pm
Funcionó a la perfección.

Muchas gracias !!

Por CRD

80 de clabLevel



Genero:Masculino  

Diseño Filete Ilustración

msie8
Citar            
MensajeEscrito el 06 Ene 2010 03:31 pm
o también

Código ActionScript :

import mx.transitions.Tween;
import mx.transitions.easing.*;

alaiz.onRelease = function(){
   new Tween(plano, "_x", Regular.easeOut, plano._x, 270, 3, true);
}

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

firefox
Citar            
MensajeEscrito el 06 Ene 2010 09:05 pm
Gracias horny1 y nasho, las dos funcionan con un interesante efecto suavizado. Pero parece que me expresé mal lo que quiero lograr. Mi idea es que, al presionar el boton, el clip se mueva unos 10 pixel (en este caso a la izquierda) y se detenga. Y que, cuando el clip "plano" llegue a un límite establecido en este caso en 270, ya no se pueda mover más aunque presiones el botón.

Por CRD

80 de clabLevel



Genero:Masculino  

Diseño Filete Ilustración

msie8
Citar            
MensajeEscrito el 06 Ene 2010 09:50 pm
pues con el que te puse lo mueve a 270 y ya no lo vuelve a mover

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

firefox
Citar            
MensajeEscrito el 06 Ene 2010 10:48 pm
Exacto, yo quisiera que vaya moviendo suave de a 10 pixel, y que se quede quieto cuando llegue a ese límite. Es porque es un plano que está centrado en un punto, y no quiero que se vea muy lejos de dicho punto.

Por CRD

80 de clabLevel



Genero:Masculino  

Diseño Filete Ilustración

msie8
Citar            
MensajeEscrito el 07 Ene 2010 02:39 am
Pues usa el mismo código de 10 en 10, para hacerlo chequea la posición del clip y luego sumale 10 cada vez que lo ejecutas. Como un tip, para que el usuario no te haga como ánimal clic clic click, y mueva 30 de una mal, usa una variable de apoyo que evalue que si esta siendo reproducido no sirva el botón.

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 08 Ene 2010 03:04 pm
Logré que se mueva de a tramos y frene. Ahora estoy viendo que no se mueva más cuando alcance el borde.

Por ahora el código es así

Código ActionScript :

alaiz.onRelease = function(){
   var planopos = Number(plano._x + 50);
   new Tween(plano, "_x", Regular.easeOut, plano._x, planopos, 3, true);
}

Por CRD

80 de clabLevel



Genero:Masculino  

Diseño Filete Ilustración

msie8
Citar            
MensajeEscrito el 08 Ene 2010 03:16 pm
Bueno, para alguien como yo que no soy programador y uso códigos simplemente para agilizar el diseño, esto es como un logro:

Código ActionScript :

alaiz.onRelease = function(){
   var planopos = Number(plano._x + 50);
      if(planopos <= 270){
         new Tween(plano, "_x", Regular.easeOut, plano._x, planopos, 3, true);
   }
}


Y hasta funciona !!!

:D

Solamente me falta anular el botón mientras se mueve el plano como bien me sugirió Hernán.

Por CRD

80 de clabLevel



Genero:Masculino  

Diseño Filete Ilustración

msie8
Citar            
MensajeEscrito el 09 Ene 2010 03:31 am
No hace falta poner el Number() ese en la variable planopos

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 09 Ene 2010 10:27 pm
ok, gracias.

Por CRD

80 de clabLevel



Genero:Masculino  

Diseño Filete Ilustración

msie8

 

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