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

mover un objeto a un lugar concreto

Estas en el tema de mover un objeto a un lugar concreto en el foro de Flash y Actionscript en Foros del Web. Hola, pretendo mover un objeto en flash, que es un rectangulito amarillo, a un lugar determinado y a la vez darle un tamaño determinado, al ...
  #1 (permalink)  
Antiguo 13/04/2007, 15:04
Avatar de marijos  
Fecha de Ingreso: mayo-2004
Ubicación: Madrid
Mensajes: 241
Antigüedad: 13 años, 7 meses
Puntos: 0
mover un objeto a un lugar concreto

Hola, pretendo mover un objeto en flash, que es un rectangulito amarillo, a un lugar determinado y a la vez darle un tamaño determinado, al pulsar un boton...

lo estudié hace tiempo pero ya se m ha olvidado, ¿como seria la sentencia de dicho botón si el objeto lo he llamado "rectangulo" (es un movieClip)

gracias por la ayuda!!!
  #2 (permalink)  
Antiguo 13/04/2007, 15:13
 
Fecha de Ingreso: septiembre-2006
Mensajes: 1.193
Antigüedad: 11 años, 2 meses
Puntos: 30
Re: mover un objeto a un lugar concreto

con interpolacion o con codigo?


si es con interpolacion ve a la ayuda de flash


y si es con codigo aparte de tu rectangulo , dibuja un cuadrado y lo conviertes a mc y pones este codigo dentro de ese cuadrado en un frame vacio


Código:
this.onRelease = function() {
	_root.rectangulo._x = 0;
	_root.rectangulo._y = 0;
};
  #3 (permalink)  
Antiguo 13/04/2007, 16:57
Avatar de marijos  
Fecha de Ingreso: mayo-2004
Ubicación: Madrid
Mensajes: 241
Antigüedad: 13 años, 7 meses
Puntos: 0
Re: mover un objeto a un lugar concreto

Me parece que me he explicado fatal, lo siento!

A ver, tengo un menú horizontal y bajo este menú una barrita amarilla se desplaza bajo las palabras según en que página estemos. Si pincho en "inicio" la idea es que la barrita amarilla se desplace horizontalmente hasta ponerse debajo de INICIO y ademas se adapte tambien a la longitud de la palabra, por eso puse lo de destinarle un lugar y una anchura determinada. Pero lo que quiero es que lo haga a través del desplazamiento horizontal una vez que pincho el botón... No se si se entiende ahora más o menos.. Espero que si!

Por eso me gustaria saber cual es la sentencia que tengo que poner en los distintos botones del menú para conseguir ese efecto con la barrita. Por cierto, que la convertí en un MovieClip y le llamé "rectángulo".

Gracias de antemano!!!
  #4 (permalink)  
Antiguo 13/04/2007, 17:09
 
Fecha de Ingreso: septiembre-2006
Mensajes: 1.193
Antigüedad: 11 años, 2 meses
Puntos: 30
Re: mover un objeto a un lugar concreto

Código:
function mover(peli:MovieClip, porcentaje:Number) {
	peli.onEnterFrame = function() {
		peli._x -= (peli._x-(porcentaje))*0.3;
		if (Math.round(peli._x) == porcentaje) {
			delete this.onEnterFrame;
			trace("Fin del movimiento");
		}
	};
}
mover(mi_mc, 500);
//mi_mc es un movieclip en el escenario con nombre de instancia mi_mc
//500 es la posicion final de desplazamiento
la parte de azul es la formula de easing la parte de rojo es como vas a usar la function cada metodo propiedad que no entiendas ve a la parte de ayuda de flash y ve para que sirve, si tienes dudas vienes y preguntas (preguntas lo mas claro posible).
  #5 (permalink)  
Antiguo 13/04/2007, 17:10
 
Fecha de Ingreso: septiembre-2006
Mensajes: 1.193
Antigüedad: 11 años, 2 meses
Puntos: 30
Re: mover un objeto a un lugar concreto

usa 40 fotogramas por segundo para que se vea mejor.
  #6 (permalink)  
Antiguo 13/04/2007, 17:20
Avatar de jahepi
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Querétaro
Mensajes: 1.124
Antigüedad: 13 años
Puntos: 43
Re: mover un objeto a un lugar concreto

Hola Marijos!

Te pongo el código que voy de salida, si tienes dudas al rato checo el mensaje.

Código:
import mx.transitions.Tween;
import mx.transitions.easing.*;

btnInicio.onRelease = function():Void {
  new Tween(barraAmarilla, "_x", Strong.easeOut, barraAmarilla._x, 200, 2, true);
  new Tween(barraAmarilla, "_width", Strong.easeOut, barraAmarilla._width, btnInicio._width, 2, true);
};
barraAmarilla es el nombre de instancia de la barra que se va a mover.

La "_x" es la propiedad que vas a modificar.

Strong.easeOut es el tipo de animación (referencia a un método estático), puedes encontrar más animciones en el paquete easing que esta en la carpeta de flash, en la carpeta classes esta toda la paquetería.

El cuarto y quinto argumento, son el valor de inicio y valor final.

El sexto es el tiempo que va durar la animación en segundos si el séptimo parámetro es true, si es false el tiempo se mide en milisegundos.

Sale, perdón si no me expliqué bien pero escribí esto como flash gordon. xD

Un saludo!
  #7 (permalink)  
Antiguo 13/04/2007, 19:30
Avatar de Bandit
Moderador
 
Fecha de Ingreso: julio-2003
Ubicación: Lima - Perú
Mensajes: 16.726
Antigüedad: 14 años, 5 meses
Puntos: 406
Re: mover un objeto a un lugar concreto

Hola marijos:
Vamos con un ejemplo:
Creamos 4 botones con el punto de registro en su centro geométrico
Y el rectángulo de 70 x 10 ubicando del mismo modo que los botones dentro de un MC.
En el escenario colocamos los botones con su centro en las coordenadas x = 75, 165, 250 y 345. Y le ponemos como nombre de instancia: b1, b2, b3 y b4.
En la capa 2 frame 1 el MC que contiene el rectángulo debajo de los botones con su centro en la coordenada x = 75, con nombre de instancia: rectángulo
En la capa 3 frame 1 éste código:
rectangulo.onEnterFrame=function(){
this._x+=(this.x0-this._x)/5
}
b1.onReleaser=function(){
rectángulo.x0=75
}
b2.onRelease=function(){
rectángulo.x0=165
}
b3.onRelease=function(){
rectángulo.x0=250
}
b4.onRelease=function(){
rectángulo.x0=345;
}
Si quieres que se agrande o achique dependiendo del tamaño del texto podrías adicionar ésta línea a cada código de los botones: rectangulo._xscale = 75; el valor lo modificas de acuerdo al tamaño del texto de cada botón.

Espero haberte sido de ayuda.
__________________
Bandit.
Si no sabes estudia y si sabes enseña.
http://www.banditwebdesign.com/
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 18:29.