En la ilusión de movimiento lo que engaña es cómo se mueve un objeto, es decir, el objeto realmente no "rueda" sino que se mueve continuamente según una variable, por ejemplo si ponemos como velocidad 5, podemos hacer un script que haga que el objeto se mueva de 5 píxeles en 5 píxeles cada vez, aquí está la ilusión.
En el ejemplo a continuación haremos que un clip se mueva por sí sólo en su eje horizontal.
Si ya tenemos el clip pues simplemente le damos el movimiento:
onClipEvent (load) {
velo = 5;
}
onClipEvent (enterFrame) {
_x+=velo;
}
El poner "_x+=velo" es igual a poner: "_x=_x+velo" en los scripts siguientes pondré esta última forma para hacer más comprensible el script, a la par que sacrifico el hacerlo más corto.
Si le das click al botón seteamos su posición a donde comenzó, está acción no la explico por que ya lo está. Pero fíjense en que el motor verdadero es la simple acción: _x+=velo, el script puede tener otras variables y efectos pero el motor es lo principal.
Como dije, nada difícil, a continuación ya empezamos a controlar más el movimiento con límites ( o paredes)
Hagamos una muestra: para poder mover un clip tenemos que setear una variable velocidad que es la cantidad de píxeles a moverse, una variable que recoja su posición X (o Y) actual, el radio (que siempre es una misma fórmula: el ancho del clip entre 2), si es que queremos un "rebote" o un toque ante una "pared" (si no lo entiendes ahora tranquilo, más adelante será más claro) y sobre todo unos límites si es que nos interesa que el movimiento los tenga. Supongo que habrán scripts de movimientos más complicados pero mi idea no es traumarlos con Action Script sino mostrárselos fácil.
-Muy bien Jesús: limites, radio, posición actual...esto
suena a matemática.
-Pues sí, tiene mucho de matemática, incluso yo soy malo
en matemática, pero esto es de la más sencilla matemática
básica, veamos:
En este ejemplo construiremos un clip que con un botón se mueva
y cuando llegue a un límite regrese a su posición inicial
y pare su movimiento. Esta vez será un movimiento horizontal
(_x), está basado en el script del ejemplo LOAD3 de la lección
de Eventos
de Clip.
Una vez que he creado el clip y el botón que lo hará funcionar he de poner el script de movimiento dentro del clip aprovechando los eventos de clip. Pero tengo que tener en cuenta que el botón debe interactuar con el script, así que allá vamos:
onClipEvent (load) {
//creo la variable que almacena la posición X del clip (que
después va a estar actualizándose una y otra vez)
//creo otra variable que almacena el límite del movimiento
(que es igual al ancho de la película)menos el radio
//y la variable que almacena el radio del clip El radio sirve sobre
todo para simular un verdadero límite al objeto, es decir que
el objeto no pase de un límite. Todo esto sencillo y que solo
debe cargarse una vez (load).
xoriginal = this._x;
limitederecho = Number(300-radio);
radio = Number(this._width)/2;
}
onClipEvent (enterFrame) {
//Como ya sabemos el enter frame está una y otra vez repitiéndose,
entonces sabiendo esto las acciones y variables se podrán actualizar
//Creo una variable de velocidad que tomará su valor de una
variable de la línea de tiempo principal
velocidad = _root.velo;
//Hago la actualización de la posición del clip según
la velocidad, esto produce la ilusión de movimiento, sobre
todo porque esta actualizándose una y otra vez por el enter
frame, pero primero cargo el valor en una variable...
xoriginal = Number(xoriginal)+Number(velocidad);
...y luego recién seteo la posición según esa
variable
this._x = xoriginal;
//Ahora viene la comprobación del limite, como dijimos al inicio
nosotros queremos que si pasa el límite vuelva a su posición
inicial _x y que pare el movimiento entonces primero comprobamos si
el clip pasa al límite que en variables sería si la
posición X del clip pasa la variable de límite que hemos
puesto...
if (xoriginal>=limitederecho) {
//...entonces xoriginal es igual a 25 (su posición inicial)
//y la velocidad es 0, esto hace que el movimiento pare
xoriginal = 25;
_root.velo = 0;
}
}
El resultado está acá:
Como vemos no es nada difícil, sólo es saber cuadrar variables y permitir que se actualizen las necesarias. Con un poco de práctica podrás hacer tus propios script con movimientos de acuerdo a tus necesidades, recuerda: practica, practica, pregunta, lee, estudia, y verás lo que logras.