Se me ocurre que uses la clase tween para los movimientos , podras facilmente restringirlos a _x e _y, e incluso podrás efectuar con ella distintos tipos de movimientos ( efectos de rebote , desplazamiento con aceleracion progresiva etc ... )... Con esto además te olvidas del engorroso enterFrame y los movimientos siempre serán suaves. Seria calcular los desplazamientos necesarios en cada eje, y aplicarlos en el orden que desees , x ejemplo 1º el _x y luego el _y, y el efecto será como una pieza caballo de ajedrez como comentas .
Un saludo ! Fede Rivas . -----Mensaje original----- De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] En nombre de Aitor Fernandez Enviado el: viernes, 03 de junio de 2005 9:22 Para: asnativos@5dms.com Asunto: Re: [ASNativos] controlar coordenadas posicion Gracias Andres la final lo tengo realizado de esta manera, Depues de todo ya controlo la posicion del recuadro para que no se salga de el, pero la parte de mover el mc en horizontal y vertical como si fuese una pieza caballo de ajedrez no lo he conseguido ¿no se como calcular la distancia para que se mueva primero en X y luego en Y o al reves? La funcion updateAfterEvent(enterFrame); se pondria dentro de cada bucle if para que haga un movimiento mas suave? o con ponerla al final es suficiente, lo digo por que me pega muchos saltos el MC que sige al cursor (y aunque lo he probado dentro de cada if sige igual, va como a tronpicones) // A cascarla, lo definimos manualmente var TOP = 30; var BOTTOM = 280; var LEFT = 35; var RIGHT = 435; pieza.onMouseMove = function() { //Posicion del raton Xpos = _root._xmouse; ypos = _root._ymouse; Xposca = pieza._x; yposca = pieza._y; Xvel = Xpos - Xposca; yvel = ypos - yposca; //velocidad Xmove = Xvel/20; ymove = yvel/20; //MOVIMIENTO //horizontal if (pieza._x < RIGHT && pieza._x > LEFT) { pieza._x = Xposca + Xmove; //updateAfterEvent(enterFrame); } else if (pieza._y > TOP || pieza._y < BOTTOM) { pieza._y = yposca + ymove; } /* if () { pieza._x = Xposca + Xmove; updateAfterEvent(enterFrame); } /*else if (pieza._y < BOTTOM) { pieza._y = yposca + ymove; } */ //vertical /* if (pieza._y > TOP) { pieza._y = yposca + ymove; } if (pieza._y < BOTTOM) { pieza._y = yposca + ymove; } */ //COLISION if (pieza._x > RIGHT) { pieza._x = RIGHT; } else if (pieza._x < LEFT) { pieza._x = LEFT; } if (pieza._y > BOTTOM) { pieza._y = BOTTOM; } else if (pieza._y < TOP) { pieza._y = TOP; } //Actualizar updateAfterEvent(enterFrame); }; Saludos. Gracias por las sugerencias. ---------------------------------- Lista ASNativos:asnativos@5dms.com http://www.5dms.com/listas ---------------------------------- ---------------------------------- Lista ASNativos:asnativos@5dms.com http://www.5dms.com/listas ----------------------------------