Primero tienes que crear una funcion que se ejecute en un evento onEnterFrame, para que se repita hasta que la ficha llegue a su destino (CicloAvanzaFicha)
Código :
CalculaSiguienteCasilla = function ()
{
--_global.objFichaAct.PuntosAvanza;
++_global.objFichaAct.CasillaSig;
_global.ContFrames = 5;
_global.objFichaAct.PosCasillaX = _root[_global.objFichaAct.CasillaSig].Pos0.x;
_global.objFichaAct.PosCasillaY = _root[_global.objFichaAct.CasillaSig].Pos0.y;
_global.objFichaAct.IncX = (_global.objFichaAct.PosCasillaX - _global.objFichaAct._x) / _global.ContFrames;
_global.objFichaAct.IncY = (_global.objFichaAct.PosCasillaY - _global.objFichaAct._y) / _global.ContFrames;
};
CicloAvanzaFicha = function ()
{
_global.objFichaAct._x = _global.objFichaAct._x + _global.objFichaAct.IncX;
_global.objFichaAct._y = _global.objFichaAct._y + _global.objFichaAct.IncY;
--_global.ContFrames;
if (_global.ContFrames > 0)
{
return;
} // end if
if (_global.objFichaAct.PuntosAvanza > 0 && _global.objFichaAct.CasillaSig < _global.UltimaCasilla)
{
CalculaSiguienteCasilla();
return;
} // end if
if (_root[_global.objFichaAct.CasillaSig].SubeBaja)
{
_global.objFichaAct.PuntosAvanza = 1;
_global.objFichaAct.CasillaSig = _root[_global.objFichaAct.CasillaSig].SubeBaja - 1;
return;
} // end if
_root.Mensaje._visible = false;
_global.objFichaAct.onEnterFrame = null;
_global.objFichaAct.CasillaAct = _global.objFichaAct.CasillaSig;
_global.objFichaAct._x = _root[_global.objFichaAct.CasillaSig]["Pos" + _global.TurnoAct].x;
_global.objFichaAct._y = _root[_global.objFichaAct.CasillaSig]["Pos" + _global.TurnoAct].y;
if (_global.objFichaAct.CasillaAct == _global.UltimaCasilla)
{
PantallaGanador._visible = true;
BtnReiniciar._visible = true;
BtnDado._visible = false;
if (_global.TurnoAct == 1 && _global.Contrincante == 1)
{
MuestraMensaje("Te gano la Computadora\nintenta de nuevo");
}
else
{
MuestraMensaje("Gano Jugador" + _global.TurnoAct + "\n¡Felicidades!");
} // end else if
}
else
{
trace ("Termina de avanzar");
IniciaSiguienteTurno();
} // end else if
};
CalculaSiguienteCasilla();
_global.objFichaAct.onEnterFrame = CicloAvanzaFicha;
Este codigo lo tengo en un juego de oca, donde se juega contra la computadora:
_global.objFichaAct contiene el movieclip de la ficha a avanzar
PuntosAvanza: será el número de casillas a avanzar, al avanzar cada casilla se le va restando uno hasta llegar a cero.
CasillaSig: será el número de casilla en la que se encuentra la ficha conforme va avanzando, va cambiando de casilla.
_global.ContFrames: contiene el numero de frames en los que una ficha se mueve de una casilla a la siguiente.
PosCasillaX y PosCasillaY: contienen la posición de la siguiente casilla a visitar.
IncX y IncY: contienen el incremento que se aplica a las coordenadas X y Y para llegar a la siguiente casilla
espero te sirva y nos cuentas...