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

como acabar inercia donde yo quiera

Estas en el tema de como acabar inercia donde yo quiera en el foro de Flash y Actionscript en Foros del Web. Buenas, aquí estoy otra vez, preguntandoos dudas. Tengo una bola a la cual la he añadido un movimiento con inercia, he conseguido ponerle la dirección ...
  #1 (permalink)  
Antiguo 27/04/2004, 04:36
 
Fecha de Ingreso: marzo-2004
Mensajes: 117
Antigüedad: 13 años, 8 meses
Puntos: 0
como acabar inercia donde yo quiera

Buenas, aquí estoy otra vez, preguntandoos dudas.
Tengo una bola a la cual la he añadido un movimiento con inercia, he conseguido ponerle la dirección que yo queria pero ahora quiera hacer que se pare justo en el extremo izquierdo de la pantalla, osea que se vea toda la bola. Ahora mismo se para en el lado izquierdo pero en el centro del mc (con lo que la bola solo se ve la mitad)
el código que tengo es el siguiente (copiado de vosotros):

this.onEnterFrame = function(){
if(!p) p=destino()
distanceX = this._x-p.xTarget
distanceY = 0
this._x = this._x-distanceX/8
this._y = this._y-distanceY/8
}

¿qué he de hacer para que se pare donde yo quiera?
Puse distanceY = 0 para que siga una trayectoria horizontal.

Y otra duda es que cuando acabe de hacer la inercia, necesito ir a otro frame para que siga con la película.

gracias y hasta pronto.
  #2 (permalink)  
Antiguo 28/04/2004, 00:39
 
Fecha de Ingreso: marzo-2003
Ubicación: valencia
Mensajes: 68
Antigüedad: 14 años, 8 meses
Puntos: 0
Hola!
Vamos por partes. Lo de que la pelota se se pasa en la mitad porque toma como referencia el centro de ma mc, tiene dos posibles soluciones
1. alineas el mc a la izquierda en vez de en el centro. Con lo cual el punto que tomara como centro del mc estara a la izquierda. o la otra posibilidad es restarle la mitad de su tamaño a la hora de hacer el calculo de la distancia en x:

distanceX = (this._x-this._width/2)-p.xTarget;

2. en cuanto a lo de ejecutar una accion cuando llegue al punto final de la inercia.


this.onEnterFrame = function(){
if(!p) p=destino()
distanceX = this._x-p.xTarget
distanceY = 0
if(distanceX>0){
this._x = this._x-distanceX/8
this._y = this._y-distanceY/8
}else{
//aqui la accion que quieras que se produzca
}
}


espero que esto sea lo que necesitabas

__________________________
www.invitrodesign.com
www.chemalopez.com
  #3 (permalink)  
Antiguo 28/04/2004, 03:05
 
Fecha de Ingreso: marzo-2004
Mensajes: 117
Antigüedad: 13 años, 8 meses
Puntos: 0
hola raulemir, lo de hacer que la inercia se detenga en el margen izquierdo lo he probado y perfecto.
lo de saber cuando se acaba de ejecutar el movimiento de la inercia en el mc no me funciona. He intantado modificar cosas sobre lo tuyo pero tampoco.
realmente no se qué valor puede tener distanceX .
gracias , un saludo.
  #4 (permalink)  
Antiguo 28/04/2004, 03:11
 
Fecha de Ingreso: marzo-2003
Ubicación: valencia
Mensajes: 68
Antigüedad: 14 años, 8 meses
Puntos: 0
vale prueba con esto:

//el problema es que distanciax no esta llegando a 0 sino que se queda en 0.012123893......., y por lo tonto siguesiendo mayor que cero.



this.onEnterFrame = function(){
if(!p) p=destino()
distanceX = this._x-p.xTarget
distanceY = 0

//cambia 0 por 0.1 en el if (visualmente no se va a notar la diferencia ya que en realidad esos decimales no existen en pantalla)

if(distanceX>0.1){
this._x = this._x-distanceX/8
this._y = this._y-distanceY/8
}else{
//aqui la accion que quieras que se produzca
}
}


_________________-
www.invitrodesign.com
www.chemalopez.com
  #5 (permalink)  
Antiguo 28/04/2004, 03:23
 
Fecha de Ingreso: marzo-2004
Mensajes: 117
Antigüedad: 13 años, 8 meses
Puntos: 0
buenas, he probado lo que me dices, raulemir.
he revisado las variables con el depurador y distanceX toma valores negativos ????
  #6 (permalink)  
Antiguo 28/04/2004, 03:27
 
Fecha de Ingreso: marzo-2003
Ubicación: valencia
Mensajes: 68
Antigüedad: 14 años, 8 meses
Puntos: 0
jiji.. no me habia dado cuenta, ahora si:

if(Math.abs(distanceX)>0.1){
this._x = this._x-distanceX/8
this._y = this._y-distanceY/8
}else{
//aqui la accion que quieras que se produzca
}


_____________________________________

www.invitrodesign.com
www.chemalopez.com
  #7 (permalink)  
Antiguo 28/04/2004, 09:20
 
Fecha de Ingreso: marzo-2004
Mensajes: 117
Antigüedad: 13 años, 8 meses
Puntos: 0
gracias raulemir, ahora funciona perfectamente.un saludo
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 23:10.