Comunidad de diseño web y desarrollo en internet online

variables globales, cambiar

Citar            
MensajeEscrito el 02 Ago 2009 07:27 pm
Buenas. Tengo una pelicula A en la que cargo con loadMovie otro swf, B.
En A hay un menú de botones, que cuando B esta cargado no quiero que funcionen. Lo intento con variable global. Para ello, en A, decalro una variable global, y cuando el swf B se carga, le cambio el valor

_global.anular="off"; //variable que anula los botones en "on"

_root.carga_mc.onRelease=function(){
_root.carga_mc.loadMovie("contacto.swf");
anular="on";
};

El swf B tiene un boton unLoadMovie. Aqui viene el tema, que cuando pulso ese boton, tengo que cambiar el valor de la variabe, pero al estar en otra pelicula, en la B, no se como enunciarlo, y mirando en la referencia de Flash no veo la manera. He probado mil cosas, como estas tres que pongo tras //:

_root.carga_mc.cerrar_mc.onRelease=function(){
_root.carga_mc.unLoadMovie();
//_root.carga_mc.set(formulario,"off");
//_global.formulario="off";
//formulario="off";
};

pero con ninguna me funciona.....

Alguan idea de como es esta sintaxis, por favor?

Gracias, Rakeljuice

Por rakeljuice

34 de clabLevel



 

msie
Citar            
MensajeEscrito el 03 Ago 2009 12:05 pm
Si la variable la defines en el espacio global:

_global.anular="off"

La cambias en ese mismo espacio

_global.anular="on"

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 03 Ago 2009 01:14 pm
tambien lo hice asi, pero no va. No va porque en el espacio global, es decir, en el swf A no puedo poner el codigo del boton cerrar que esta dentro de B, ya que no funciona.

rakeljuice

Por rakeljuice

34 de clabLevel



 

msie7
Citar            
MensajeEscrito el 03 Ago 2009 01:21 pm
Pones el valor de una variable que es on o off ... luego en base a eso el resto. En síntesis, si accedes el valor de la variable, el problema no es el espacio global sino como implementas la acción del botón

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 03 Ago 2009 01:25 pm
Asi la implemento:

_root.carga_mc.cerrar_mc.onRelease=function(){
_root.carga_mc.unLoadMovie();
_global.formulario="off";
};

Hay que hacerlo de otra manera? Porque así no funciona....

Por rakeljuice

34 de clabLevel



 

msie7
Citar            
MensajeEscrito el 03 Ago 2009 01:27 pm
Haces dos cosas: descargas una peli y seteas una variable. ¿Cual de las dos no funciona?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 03 Ago 2009 01:42 pm
descargar (unloadMovie). Por lo tanto, setear tampoco.

Por rakeljuice

34 de clabLevel



 

msie7
Citar            
MensajeEscrito el 03 Ago 2009 01:43 pm
setear tampoco porque la seteo dentro de la misma funcion

(este foro no tiene editar?)

Por rakeljuice

34 de clabLevel



 

msie7
Citar            
MensajeEscrito el 03 Ago 2009 02:14 pm
Si le asignas un evento a un contenedor donde vas a cargar contenido externo, quitas todos los eventos:

Código ActionScript :

_root.carga_mc.onRelease=function(){
    _root.carga_mc.loadMovie("contacto.swf"); 
    //aquí has borrado cualquier evento asignado a _root.carga.xxx hasta que no haya terminado de cargar


Pon cerrar_mc fuera de carga_mc si quieres que funcione

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 03 Ago 2009 02:20 pm
es que esto no me habia pasado nunca.....por algun motivo, no puedo invocar a nada de contacto.swf desde la escena principal. Ese era el problema, y no las variables. Gracias a tus comentarios me he dado cuenta de ello.

Ahora seguire devenandome sobre porqué no funciona nada desde fuera. El contacto.swf tiene un drag para poder moverlo por la pantalla, quiza sea eso....

Lo ultimo que me dices, no puedo hacerlo. No puedo tener un boton cerrar constantemente en la escena principal solo para cuando al otro le de por cargar. (se carga si el usuario le da al boton)

Voy a seguir a ver....

Por rakeljuice

34 de clabLevel



 

msie7
Citar            
MensajeEscrito el 03 Ago 2009 02:35 pm
¿te puedo enviar los archivos (los subo a mi ftp para descargar)?

no veo la luz.....

Por rakeljuice

34 de clabLevel



 

msie7
Citar            
MensajeEscrito el 03 Ago 2009 02:39 pm
Nop, http://foros.cristalab.com/baja-y-arregla-mi-archivo-t56378/
Anyway, al hacer un loadMovie sobre un objeto te cargas toda la programación que le habías asignado, ejemplo

Código ActionScript :

mi_mc.onPress = function(
  trace("hola")
)
mi_mc.loadMovie("algun.swf")


El onPress jamás funcionará porque haz hecho un loadMovie. Para que funcione, hay que asignarlo después de que termine de cargar el swf, es decir hay que implementar un preloader

Dedícale tiempo

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 03 Ago 2009 02:53 pm
Ya he leido tu link, y por supuesto (y lo digo porque es asi), no pretendo que nadie me lo arregle, pero es que me dices cosas que me estan liando todo.

Primero, que llame al boton desde la escena principal para poder setear la variable, y luego, que no puedo hacer eso porque el loadMovie lo anula todo. ¿En que quedamos? Mi intencion de subir un archivo es para ver cómo estoy escribiendo el codigo mas claramente, aunque ya lo he puesto en mi primer post..... aunque parece que no debe estar claro.

De todos modos, gracias por la molestia.

rakeljuice

Por rakeljuice

34 de clabLevel



 

msie7
Citar            
MensajeEscrito el 03 Ago 2009 02:58 pm
Claro, suponía que no quieres que te lo haga, por eso te lo decía.
Quedamos en que si cargas contenido en un MC anulas cualquier code de ese MC que tuvieras declarado, se me pasó marcártelo en tu primer post

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 03 Ago 2009 06:16 pm
Como no me gusta leer los posts inconclusos, con muchos comentarios pero que no resuelven nada y dejan a todos con las mismas dudas (es tan tipico eso de "busca en los foros, esa pregunta ya se ha hecho" y eso otro de "si, si ya he buscado, pero no hay respuestas"), dejo aqui mi solución al tema, para que este post iniciado por mi no quede como tantos otros. Para el que le interese:

He hecho en la pelicula A un movieclip transparente con dos frames. En el primero, seteo la variable a off, y en el segundo a on. Cuando la pelicula A entra, es =off. Cuando pulso el boton que carga la pelicula externa, ademas de loadMovie, en la funcion le digo que este movieclip con la variable vaya al frame 2. Asi la variable se setea en on, y como en los botones digo que funcionen solo si variable==off, pues se anulan.

Cuando en la pelicula cargada B presiono el boton cerrar, ademas de la descarga, hace que el movieclip con la variable vaya al frame 1. Asi la variable se setea en off, y como en los botones digo que funcionen solo si variable==off, pues se activan.

Asi la variable esta siempre en la misma escena.

rakeljuice

Por rakeljuice

34 de clabLevel



 

msie7
Citar            
MensajeEscrito el 03 Ago 2009 06:22 pm
Excelente, gracias

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 03 Ago 2009 06:46 pm
Solisarg, no deberías leerlo. Es una solución...

Por rakeljuice

34 de clabLevel



 

msie7

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.