Utilizo Adobe Flash CS5 y estoy intentando mover un cículo a derecha e izquierda, dándolo unos valores límite a los que puede llegar, de manera que cuando los alcanza o sobrepasa, vuelve en sentido contrario. El script que he utilizado es el siguiente:
var BolaEjex_anterior = Bola_mc.x;
var BolaEjex_actual = Bola_mc.x;
function MovimientoBola (Distx) {
if (Bola_mc.x >= 120) {
BolaEjex_anterior = Bola_mc.x;
Bola_mc.x -= Distx;
BolaEjex_actual = Bola_mc.x;
}
else if (Bola_mc.x <= 10) {
BolaEjex_anterior = Bola_mc.x;
Bola_mc.x += Distx;
BolaEjex_actual = Bola_mc.x;
}
else if (BolaEjex_actual < BolaEjex_anterior) {
BolaEjex_anterior = Bola_mc.x;
Bola_mc.x -= Distx;
BolaEjex_actual = Bola_mc.x;
}
else if (BolaEjex_actual > BolaEjex_anterior) {
BolaEjex_anterior = Bola_mc.x;
Bola_mc.x += Distx;
BolaEjex_actual = Bola_mc.x;
}
else if (BolaEjex_actual == BolaEjex_anterior) {
Bola_mc.x += Distx;
BolaEjex_actual = Bola_mc.x;
}
trace (BolaEjex_anterior);
trace (BolaEjex_actual);
};
MovimientoBola (2);
El script hace que la bola comience a moverse hacia la derecha (sentido positivo de X), pero al alcanzar el primer punto en el que tiene que dar la vuelta (en este caso está puesto para >= que 120), hace bien el cambio de variable (la BolaEjex_anterior pasa a ser los 120 y la actual a 118), pero luego vuelve a ponerme la actual en 120 y la anterior en 118, y así va haciendo un bucle.
¿Podríais ayudarme alguno? Llevo toda la tarde estudiando el script y no doy con lo que es, aunque me da la impresión de que debe ir el problema por los ELSE IF.
Gracias de antemano.