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

Desplazamiento de un objeto

Estas en el tema de Desplazamiento de un objeto en el foro de Flash y Actionscript en Foros del Web. Hola a todos Les cuento lo que necesito hacer, que si bien es simple, se me está complicando. He buscado en este y otros foros, ...
  #1 (permalink)  
Antiguo 17/03/2010, 06:08
 
Fecha de Ingreso: marzo-2010
Mensajes: 3
Antigüedad: 14 años, 9 meses
Puntos: 0
Desplazamiento de un objeto

Hola a todos
Les cuento lo que necesito hacer, que si bien es simple, se me está complicando.
He buscado en este y otros foros, he aplicado varios códigos, pero al no entender la lógica de la programación, se me complica.
Trateré de ser breve y claro:

Tengo el espacio de trabajo en 550 x 400.
Dentro, un objeto (movieclip) de 2200px de ancho por 200 de alto.
Necesito que ese objeto se desplace horizontalmente de derecha a izquierda, a una velocidad constante (que yo pueda determinar), y finalice su recorrido (es decir, se detenga) en determinada posición.

Explicado en términos más simples, la animación que estoy tratando de hacer simula una línea de tiempo, que, al estilo de una regla, se desplaza. Es la evolución de un logotipo a través de los años. Entonces, al llegar al año actual, esa banda se detiene. Luego, m encargaré de alguna animación al finalizar ese recorrido. Pero esa es otra historia.

Espero haber sido claro, y sino, con todo gusto puedo explayarme más.

Muchas gracias por leer este mensaje.

Saludos cordiales
Marcelo
  #2 (permalink)  
Antiguo 17/03/2010, 08:31
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 16 años, 2 meses
Puntos: 175
Respuesta: Desplazamiento de un objeto

Bueno.. esto lo aprendi de un forero hace tiempo

lo que quieres hacer no es tan dificil... y facil de controlar... si el desplazamiento es Horizontal, solo debes usar la coordenada X... donde lo dices a un objeto que se mueva sobre esa coordenada... para que el objeto automaticamente lo haga de forma constante existe una funcion enterFrame, que ejecuta constantemente un codigo.

la formula seria

_x = (posicionFinal - _x)/velocidad

_x es la representacion o atributo de posicion X que tiene el objeto.. por eso se escribe con un guion bajo

traducido seria, la posicion del clip en la coordenada X sera igual restarle una cantidad constantemente a la posicion actual de X, dividida en tantas partes..


Puedes, como prueba... generar un cuadro en un documento nuevo, ponlo fuera del area de trabajo hacia la izquierda de tu pantalla... conveirtelo en MovieCLip

luego, en en simbolo escribes este codigo

_x= (200-_x)/10;

y pruebas la pelicula...

le indicamos que el objeto debera llegar hasta el punto X 200 del area de trabajo.. o sea, si tu scena mide 550, haz el calculo de donde estara el punto 200, o pueba cambiando la cantidad, donde para salir de la escena, debes poner un numero mayor al tamaño de la escena que manejas... prueba tambien cambiando el ultimo valor de la division.. en este caso lo puse como 10, pero cuanto mayor sea el numero... mas lento se desplazara el objeto, como si le dieras interpolacion..

2- si esto no te sirve... lo que deberias es hacer una interpolacion básica de movimiento, y cuando llegue al punto deseado, le pones un stop(); para que quede ahi, y en ese lugar le cargas un action que traiga una animacion etc.

espero te sea de utilidad, ya que es sencillo
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #3 (permalink)  
Antiguo 17/03/2010, 08:56
 
Fecha de Ingreso: marzo-2010
Mensajes: 3
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Desplazamiento de un objeto

Hola Loncho
Ya lo pruebo y te cuento!
Respecto a hacerlo con interpolación de movimiento es un espanto, dado que por el tamaño, tengo que hacerla de unos 600 frames, y se nota el movimiento (frame x frame), queda horrendo.
Te agradezco mucho la info, en breve te estaré confirmando como anduvo.

Muchas gracias!
Saludos
Marcelo
  #4 (permalink)  
Antiguo 17/03/2010, 09:00
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 16 años, 2 meses
Puntos: 175
Respuesta: Desplazamiento de un objeto

Perdon.. el codigo correcto que debe ir en el CLip de pelicula seria

Código actionscript:
Ver original
  1. onClipEvent(enterFrame){
  2. _x += (400 - _x)/20
  3.  
  4. }

y vas cambiado los valores de la ultima posicion, y la velocidad, segun tu necesidad.. se me paso lo del enterFrame
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #5 (permalink)  
Antiguo 19/03/2010, 04:25
 
Fecha de Ingreso: marzo-2010
Mensajes: 3
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Desplazamiento de un objeto

Holas
No, che, no anda asi. Creo que falta el MC, que ahi no se donde ponerlo.
Pero, encontré este otro, que mas o menos cumple la función, solo que no para en ningún momento, no se que función es la que lo detiene. Pego el código abajo:

Código:
this.onEnterFrame = function () {

    linea._x-- /300
			if (linea._x == -123) {

		}
}
Solo necesito eso, qué escribo para deternerlo.
"linea" es el MC.

Gracias!

Saludos
Marcelo
  #6 (permalink)  
Antiguo 19/03/2010, 09:48
Avatar de Diegoazul  
Fecha de Ingreso: mayo-2007
Ubicación: { Dash Berlin }
Mensajes: 1.879
Antigüedad: 17 años, 6 meses
Puntos: 67
Respuesta: Desplazamiento de un objeto

Si lo que quieres es una funcion para mover un objeto de un punto a otro, debes usar la clase Tween , presiona (f1) y leé su documentación:

Ejemplo:

En un fla nuevo crea una pelota y la llamas como nombre de instancia pelota_mc


y en un frame vacio pones esto:

Cita:
import mx.transitions.Tween;
import mx.transitions.easing.*;
new Tween(pelota_mc, "_x", Strong.easeIn, 0, 500, 3, true);


la pelota va a ir de x:0 a x:500 en tres segundos, leé en flash (f1) ahí esta todo.
__________________
{ Flash }

Etiquetas: actionscript, desplazamiento
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 01:30.