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

ayuda con botones

Estas en el tema de ayuda con botones en el foro de Flash y Actionscript en Foros del Web. hola a [email protected] tengo varios mc con un codigo que hace que vayan moviendose aleatoriamente por toda la pantalla cuando se les pincha. este codigo ...
  #1 (permalink)  
Antiguo 06/08/2007, 12:02
 
Fecha de Ingreso: agosto-2007
Mensajes: 130
Antigüedad: 10 años, 4 meses
Puntos: 0
ayuda con botones

hola a [email protected]

tengo varios mc con un codigo que hace que vayan moviendose aleatoriamente por toda la pantalla cuando se les pincha. este codigo lo llevan cada uno de los mc:

on (press) {
defino variables de velocidad
}
onClipEvent(enterFrame){
defino las funciones math que hacen que vaya moviendose
}

pero una vez van moviendose no se como hacer para que al pasar el raton por encima cese el movimiento y cuando el raton se aparte sigan su movimiento y tambien que una vez estan detenidos y se les pulsa hagan un loadmovie, ya que ya les he definido al principio un on (press).

alguien me puede indicar mas o menos como hacerlo?

gracias
  #2 (permalink)  
Antiguo 07/08/2007, 02:03
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 13 años, 4 meses
Puntos: 12
Re: ayuda con botones

Creo que deberías hacer un on(rollOver) y un on(rollOut) para los eventos del mouse sobre cada mc, y al hacerlo, redefinas las variables de velocidad. Es decir, velocidad 0 cuando on(rollOver) y velocidad normal cuando on(rollOut).

Como ya tienes definido el evento on(press), deberías crear una variable para comprobar si tienes que iniciar el movimiento o hacer el loadMovie.

Saludos!
  #3 (permalink)  
Antiguo 07/08/2007, 03:33
 
Fecha de Ingreso: agosto-2007
Mensajes: 130
Antigüedad: 10 años, 4 meses
Puntos: 0
Re: ayuda con botones

uuufff, gracias! pero no creo que me aclare con lo de la variable para la comprobacion del loadmovie... creo que eso supera mis insignificantes conocimientos de AS...
  #4 (permalink)  
Antiguo 07/08/2007, 03:42
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 13 años, 4 meses
Puntos: 12
Re: ayuda con botones

Nooo, no hay para tanto. En las acciones del clip de película puedes añadir esto:
Código:
onClipEvent(load){
   var movimiento:Boolean = false;
}
Ahora, en el mc tenemos una variable movimiento que en principio es false, es decir, que está parado.
Y en el evento on(press) debes comprobar si es false o true para hacer una cosa u otra:
Código:
on (press) {
   if (movimiento) {
      // acciones para el loadMovie;
   } else {
      // acciones para dar movimiento al mc;
   }
}
Es fácil, haz tus pruebas y cuelga aquí tus dudas.

Saludos!
  #5 (permalink)  
Antiguo 07/08/2007, 05:10
 
Fecha de Ingreso: agosto-2007
Mensajes: 130
Antigüedad: 10 años, 4 meses
Puntos: 0
Re: ayuda con botones

uf.. lo probare. gracias. de todas maneras te pongo el codigo del mc para ver si lo ves bien, porque ahora me pones un nuevo onpress y no se si se van a liar los onpress.

Código:
on (press) {
	//velocidad en pixels por enterframe
	vx = 3;
	vy = 0;
	//tiempo reaccion
	delay = 6;
	//amplitud de giros
	amp = 6;
	ta = 6;
	t = 0;
}
onClipEvent(enterFrame){
	m = t%delay;
	if(!m){
		if(ta>amp) i=-1;
		else if(ta<-amp) i=1;
		//angulo random entre [-4,4]
		else i=random(3)-1;
	}
	t++;
	ta += i;
	a = ta*Math.PI/180;
	//rotacion velocidades
	cos = Math.cos(a);
	sin = Math.sin(a);
	nvx = vx*cos-vy*sin;
	nvy = vx*sin+vy*cos;
	vx = nvx;
	vy = nvy;
	//movimiento final
	_x += vx;
	_y += vy;
	//rebotes en límites
	if(_x<1){
		_x = 1;
		vx = -vx;
	}
	else if(_x>379){
		_x = 379;
		vx = -vx;
	}
	if(_y<1){
		_y = 1;
		vy = -vy;
	}
	else if(_y>299){
		_y = 299;
		vy = -vy;
	}
}
despues de todo esto habia añadido unas lineas para que el mc se parara o continuara segun estuviera el raton encima o no.

Código:
	onRollOver = function () {
		vx = 0;
		vy = 0;
	}
	onRollOut = function () {
		vx = _xmouse;
		vy = _ymouse;
	}
pero el rollout parece que se acelere. y no se que ponerle (= _x el mc se volvia loco).

ahora, al decirme que le ponga otro onclipevent (originalmente donde tengo on (press) tenia un onclipevent (load). lo cambie para que se moviera solo si se le pulsaba) y que le ponga otro on (press)... no se va a confundir el mc y no sabra que hacer?

gracias por tu ayuda, mahalo.
  #6 (permalink)  
Antiguo 07/08/2007, 05:15
 
Fecha de Ingreso: agosto-2007
Mensajes: 130
Antigüedad: 10 años, 4 meses
Puntos: 0
Re: ayuda con botones

al necesitar dos on (press) estaba cambiando el codigo para que fuera un boton el que le dijera al mc que se moviera. habia hecho lo siguiente:
Código:
mover = function (clip) {
	clip.onLoad = function () {
	//velocidad en pixels por enterframe
		vx = 3;
		vy = 0;
	//tiempo reaccion
		delay = 6;
	//amplitud de giros
		amp = 6;
		ta = 6;
		t = 0;
	}
	clip.onEnterFrame = function () {
		m = t%delay;
		if(!m){
			if(ta>amp) i=-1;
			else if(ta<-amp) i=1;
		//angulo random entre [-4,4]
			else i=random(3)-1;
		}
		t++;
		ta += i;
		a = ta*Math.PI/180;
	//rotacion velocidades
		cos = Math.cos(a);
		sin = Math.sin(a);
		nvx = vx*cos-vy*sin;
		nvy = vx*sin+vy*cos;
		vx = nvx;
		vy = nvy;
	//movimiento final
		_x += vx;
		_y += vy;
	//rebotes en límites
		if(_x<1){
			_x = 1;
			vx = -vx;
		}
		else if(_x>379){
			_x = 379;
			vx = -vx;
		}
		if(_y<1){
			_y = 1;
			vy = -vy;
		}
		else if(_y>299){
			_y = 299;
			vy = -vy;
		}
	}
}
en 1 frame ponia este codigo que me definia una funcion que me valdria para varios mc. depues en el boton colocaba lo siguiente:

Código:
on (release) {
	mover(inicio);
}
donde "inicio" es el nombre de instancia del mc. no habia seguido con lo del rollover, rollout y onpress porque con estas modificaciones solo consigo que se mueva el mc un poquito y se pare, y encima, el boton tambien se mueve ese poquito!

en fin, que no me entero donde puede estar el problema...
  #7 (permalink)  
Antiguo 07/08/2007, 05:52
 
Fecha de Ingreso: agosto-2007
Mensajes: 130
Antigüedad: 10 años, 4 meses
Puntos: 0
Re: ayuda con botones

ya lo tengo... le he quitado el primer clip.onload y ya me funciona. pero se me mueven tanto el clip como el boton. y encima, añado unas lineas para que si rollover el clip se pare y si rollout elclip continue y

Código:
clip.onRollOver = function () {
			vx = 0;
			vy = 0;
		}


clip.onRollOut = function () {
			vx = _xmouse;
			vy = _ymouse;
		}
cuando pongo el raton encima se para pero al quitar el cursor, el clip y el boton se vuelven locos...

una ayudita mas, porfaaa...
  #8 (permalink)  
Antiguo 07/08/2007, 06:03
 
Fecha de Ingreso: agosto-2007
Mensajes: 130
Antigüedad: 10 años, 4 meses
Puntos: 0
Re: ayuda con botones

bueno, voy enterandome de algo...

he cambiado _x por clip._x y _y por clip._y
tambien _xmouse por clip._xmouse y _ymouse por clip._y mouse

y funciona correctamente, lo que pasa es que cuando se para y vuelve a seguir su movimiento lo hace mas rapido que antes.

alguna sugerencia? habria alguna manera de hacer que el rollout vaya al principio del movimiento?

gracias
  #9 (permalink)  
Antiguo 07/08/2007, 06:11
 
Fecha de Ingreso: agosto-2007
Mensajes: 130
Antigüedad: 10 años, 4 meses
Puntos: 0
Re: ayuda con botones

pues ya lo tengo!!

en el rollout simplemente le he puesto que haga la funcion que creo al principio

mover (clip)

si al final va a resultar que esto es sencillo...
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 22:00.