Foros del Web » Creando para Internet » Flash y Actionscript »

problemas con function()...

Estas en el tema de problemas con function()... en el foro de Flash y Actionscript en Foros del Web. Hola otra vez: He puesto una función en el primer frame de mi película: MovieClip.prototype.vertical = function(desti,yvel,f,r) { this._y +=Math.round( (yvel=yvel*f+(desti-this._y)*r)); }; Esto mueve un ...
  #1 (permalink)  
Antiguo 22/01/2007, 19:36
 
Fecha de Ingreso: marzo-2003
Ubicación: Catalunya
Mensajes: 265
Antigüedad: 21 años, 1 mes
Puntos: 2
problemas con function()...

Hola otra vez:

He puesto una función en el primer frame de mi película:

MovieClip.prototype.vertical = function(desti,yvel,f,r) {
this._y +=Math.round( (yvel=yvel*f+(desti-this._y)*r));
};

Esto mueve un mc verticalmente. En el mc he puesto:

onClipEvent(enterFrame){
this.vertical(378,0,0.2,0.5);

}

Y en principio todo va bien. El problema es que si quiero cambiar ese mc de posición nuevamente (supongamos y=300) la cosa no funciona porque se desplaza a la posición que le digo pero vuelve de nuevo a la anterior que era y=378.

¿por qué pasa esto? ¿Alguien puede ayudarme?

Gracias!
  #2 (permalink)  
Antiguo 22/01/2007, 20:00
Avatar de Bandit
Moderador
 
Fecha de Ingreso: julio-2003
Ubicación: Lima - Perú
Mensajes: 16.726
Antigüedad: 20 años, 9 meses
Puntos: 406
Re: problemas con function()...

Hola osiris:
Si tú haces el cambio en éste código:
onClipEvent(enterFrame){
this.vertical(378,0,0.2,0.5);
}
El primer valor que es 378 por 300, se dentendrá en la coordenada y = 300.

Espero haberte sido de ayuda.
__________________
Bandit.
Si no sabes estudia y si sabes enseña.
http://www.banditwebdesign.com/
  #3 (permalink)  
Antiguo 22/01/2007, 20:18
 
Fecha de Ingreso: marzo-2003
Ubicación: Catalunya
Mensajes: 265
Antigüedad: 21 años, 1 mes
Puntos: 2
Re: problemas con function()...

Hola Bandit:

Gracias por tu ayuda. Lo que dices funciona, pero lo que yo pretendo conseguir es que ese nuevo desplazamiento se produzca al presionar un botón.

He probado de poner al botón el código:

on(relesae){
_root.NombreInstancia.vertical(300,0,0.2,0.5);
}

Y lo que pasa es que al hacer clic en el botón va a la posición nueva (300) pero regresa a la anterior..."rebota". Y no sé donde esta el fallo.

De todos modos, muchas gracias.
  #4 (permalink)  
Antiguo 22/01/2007, 21:06
Avatar de TMeister
Crazy Coder
 
Fecha de Ingreso: enero-2002
Ubicación: En la Oficina
Mensajes: 2.880
Antigüedad: 22 años, 3 meses
Puntos: 193
Re: problemas con function()...

El problema es en ::

Código:
onClipEvent(enterFrame){
     this.vertical(378,0,0.2,0.5);
}
esto lo que hace es, ejecuta la funcion tantas veces por segundo como tengas configurada tu pelicula si tu pelicula esta a 12 frames por segundo esta funcion se ejecuta 12 veces por segundo.

Si desde cualquier otra parte quieres setear otro valor la funcion sobreescribe lo que la ultima instruccion.

Me explico??
  #5 (permalink)  
Antiguo 22/01/2007, 22:54
 
Fecha de Ingreso: marzo-2003
Ubicación: Catalunya
Mensajes: 265
Antigüedad: 21 años, 1 mes
Puntos: 2
Re: problemas con function()...

Gracias TMeister: está muy claro. Lo solucionaré poniendo variables para que se llame a la función únicamente si tienen un valor determinado. No se me ocurre otra cosa.

Saludos.
  #6 (permalink)  
Antiguo 24/01/2007, 04:03
 
Fecha de Ingreso: marzo-2004
Ubicación: Tijuana, B.C.
Mensajes: 66
Antigüedad: 20 años, 1 mes
Puntos: 0
Sonrisa Re: problemas con function()...

Una duda jejeje.

Que formula es esa?. Es la de Easing de Flash MX 2004?.

Es que yo uso la antigüita de Alesys jejeje.

Salu2!
__________________
Que les Llueva Luz a todos!!
  #7 (permalink)  
Antiguo 24/01/2007, 08:02
 
Fecha de Ingreso: marzo-2003
Ubicación: Catalunya
Mensajes: 265
Antigüedad: 21 años, 1 mes
Puntos: 2
Re: problemas con function()...

Esta fórmula se usa, en principio, para hacer el movimiento con elasticidad. La saqué de un manual de flash.

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:56.