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

Problema _rotation

Estas en el tema de Problema _rotation en el foro de Flash y Actionscript en Foros del Web. Hola tengo un problemilla: Tengo un mc con este script Código: onClipEvent (load) { mover = 0; } onClipEvent (enterFrame) { _rotation += (mover-_rotation)/4; } ...
  #1 (permalink)  
Antiguo 11/01/2008, 21:29
Avatar de SkyWalker  
Fecha de Ingreso: enero-2002
Mensajes: 39
Antigüedad: 22 años, 10 meses
Puntos: 0
Problema _rotation

Hola tengo un problemilla:

Tengo un mc con este script

Código:
onClipEvent (load) {
	mover = 0;
}
onClipEvent (enterFrame) {
	
	_rotation += (mover-_rotation)/4;

}
y un botón que da valores a mover +45 y otro -45, cuando pulsas el botón el mc gira izquierda y dercha, por lo tanto daria vueltas hasta el infinito porque segun he leido por ejemplo _rotation entiende +425 grados como 65 grados, vale el problema es que cuando supera los 180 o los -180 empieza a dar vueltas como las ruedas de un formula 1, y no alcanzo a controlar porque...

De primeras se me ha ocurrido poner unos if de tal manera que cuando sea más de 180 el valor se el siguiente que tendría que ser -135, y es correcto, lo unico que en vez de girar de la forma más cercana gira al contrario y da todo el recorrido... quizas tenga que cambiar tb la formula "_rotation += (mover-_rotation)/4;" ?? o no sirviria para nada...

Gracias
  #2 (permalink)  
Antiguo 12/01/2008, 03:33
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 20 años, 4 meses
Puntos: 12
Re: Problema _rotation

¿Qué código tienes en el botón? Es que a la fórmula que tienes en el evento enterFrame no le veo mucha lógica.
Yo podría esto:
Código:
onClipEvent (load) {
	mover = 0;
}
onClipEvent (enterFrame) {
	
	_rotation += mover;

}
Y desde el botón asignar a esta variable mover un valor determinado (1 ó -1, ¿no?). Si te he entendido bien...

Sludos!
__________________
Los ignorantes se empeñan en enseñar. Los sabios en aprender.
SourceForge
  #3 (permalink)  
Antiguo 12/01/2008, 05:43
Avatar de SkyWalker  
Fecha de Ingreso: enero-2002
Mensajes: 39
Antigüedad: 22 años, 10 meses
Puntos: 0
Re: Problema _rotation

No en el boton solo tengo esto:
Código:
on (release) {
	rueda.mover += 45;
	}
Pero esta bien ... en el en mc que se mueve, tengo lo que puse arriba....
la formula la saque de un ejemplito, lo que hace esa formula es dar el movimiento de más a menos, empieza to rápido y se va parando conforme llega al valor de mover, crea un efecto más bonito, en realidad la formula era con _x no con _rotate, pero imagine q _rotate tendría el mismo comportamiento.

Tengo un par de campos para ver los valores de _rotate y de mover y todo parece bien, hasta que llega a numeros superiores a 180 o -180 (que en realidad son la misma posición), cuando llega a esos valores superiores, va tan rápido que no me da tiempo a ir observando los valores que va tomando _rotate y analizar el problema....

Luego pondré un ejemplito... aver si lo podemos sacar... el efecto seguro va aser muy util y facilon pa mucha gente.
  #4 (permalink)  
Antiguo 12/01/2008, 13:53
Avatar de SkyWalker  
Fecha de Ingreso: enero-2002
Mensajes: 39
Antigüedad: 22 años, 10 meses
Puntos: 0
Re: Problema _rotation

Resuelto:

Código:
if (mover>180) {
		mover = mover%180;
		mover = (mover+90)*-1;
		_rotation = -180;
	} else if (mover<-180) {
		mover = mover%180;
		mover = mover+180;
		_rotation = 180;
	} else {
		mover = mover;
	}
	_rotation += (mover-_rotation)/4;
El problema es que rotate solo entre 180 y -180, lo que hacemos poniendo _rotation en los if es cambiarle el valor para que empiece a contar desde 180 o desde -180, que en realidad son la misma posición, pero no matematicamente porque antes lo ponia para que fuera hasta -135 pero hacia el calculo desde 0, asi lo hace desde -180 que es la misma posicion que 180, insitsto-. Viene muy bien el trace() asi me dio tiempo a ver el fall0.

ya pondré el resultado del flash...

Última edición por SkyWalker; 12/01/2008 a las 13:58
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 23:08.