Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/04/2009, 13:55
Pantanico
 
Fecha de Ingreso: marzo-2009
Ubicación: Elda - Alicante
Mensajes: 55
Antigüedad: 15 años, 1 mes
Puntos: 0
Problema con _global.variable

Hola.

Tengo una escena con 5 botones que deberán abrir respectivamente sus archivos externos .swf.
En la escena principal, en la capa variables están declaradas estas variables:

Código:
_global.journeyv = false;
_global.ridersv = false;
_root.journeyv = false;
_root.ridersv = false;
luego en cada botón pone esto, por ejemplo en el boton riders:

Código:
on (release) {
	_root.fondoi.gotoAndPlay(30);
	_root.botonesi.gotoAndPlay(30);
	_root.ridersv = true;
	
}
Como veis, al soltar nos activa la variable ridersv y la pone en true, también nos lleva a un MC, nombre instancia fondoi, frame 30 y hace una animación de salida de la escena.
En el frame 45 hay una condición:

Código:
if (_root.ridersv = true){
	_root.gotoAndPlay(2);
}
Si la variable es verdadera entonces me manda a la escena principal, frame 2 donde hay un clip contenedor vacio y se carga el .swf correspondiente al boton riders. Hasta ahí todo bien.
(En la escena principal frame 3 hay contenido un movie externo journey.swf, en el frame 4 otro y así hasta completar todos los botones y todos los.swf)

Problema: Cuando repito todo este proceso para hacer lo mismo con el siguiente botón, siempre me carga el .swf contenido en el frame2.

Pienso que el problema está en que la variable se tiene que pasar a true SÓLO cuando se pulse el botón, pero no sucede esto, lo que sucede es que todas las variables pasan a valer true por estar declaradas _global o algo así y entonces pinches el botón que pinches se activa siempre la carga de riders.swf que es la primera condición que encuentra flash (está en una capa por encima y el contenedor en un frame antes (2))

Para comprobarlo hice esto:
primero pinchamos en el botón riders (se activa supuestamente la variable riders) y después en el fotograma 45 de fondoi , está escrito sólo esto:
Código:
if (_root.journeyv = true){
	_root.gotoAndPlay(2);
}
Si pincho el botón riders y me manda a la condición con la variable journey, no debería suceder nada, ya que el botón riders ACTIVA A TRUE LA VARIABLE RIDERSV y no la variable journeyv.

pienso que tiene que ver con la declaración _global.

Cómo puedo hacer que cambie el valor de la variable sólamente en la acción del botón?

Gracias y perdón por el ladrillo.