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

Problema al modificar variable _global

Estas en el tema de Problema al modificar variable _global en el foro de Flash y Actionscript en Foros del Web. Buenas, estoy intentando cambiar una variable global con este script, la idea es que al correr el bucle se generen tantos botones como indique la ...
  #1 (permalink)  
Antiguo 08/07/2005, 15:15
 
Fecha de Ingreso: octubre-2003
Mensajes: 304
Antigüedad: 14 años, 1 mes
Puntos: 0
Exclamación Problema al modificar variable _global

Buenas, estoy intentando cambiar una variable global con este script, la idea es que al correr el bucle se generen tantos botones como indique la variable "a", cada uno de estos botones toma una posicion, y al clickear sobre cada uno arranca la pelicula y modifica una variable global... cierra todo por todos lados,

lo que no puedo lograr es que se le asigne a cada boton la propiedad de modificar la variable _global.mivariable segun el valor correspondiente a su vuelta de bucle... en todos los botones me modifica la variable segun el valor mas grande del bucle... ayudaaaaaaaaaaa!!!!!

Código PHP:
for(b=1b<=ab++)
    {
     
// Declaración
     
this["pag"+b]= this.attachMovie("boton" "pag"+100 );
     
     
//Posicionamiento
     
this["pag"+b]._x 25;
     
this["pag"+b]._y 122;

     
//Tareas
     
this["pag"+b].onRelease = function(){gotoAndPlay(2);}; 
     
this["pag"+b].onRelease = function(){ _global.mivariable b;}; 
     }; 
  #2 (permalink)  
Antiguo 08/07/2005, 19:20
Avatar de Prince  
Fecha de Ingreso: mayo-2003
Ubicación: DF
Mensajes: 574
Antigüedad: 14 años, 7 meses
Puntos: 1
Lo que pasa es que la declaración de la variable global la tienes que hacer sólamente una vez y tú lo estas haciendo cada vez que la escribes en la función.

Ok. Corrige tu código de la siguiente forma.
Código:
_global.mivariable;
for(b=1; b<=a; b++)
    {
     // Declaración
     this["pag"+b]= this.attachMovie("boton" , "pag"+b , b * 100 );
    
     //Posicionamiento
     this["pag"+b]._x = b * 25;
     this["pag"+b]._y = 122;

     //Tareas
     this["pag"+b].onRelease = function(){gotoAndPlay(2);};
     this["pag"+b].onRelease = function(){ mivariable = b;};
     };
y me explicas que paso...
__________________
- P R I N C E -
  #3 (permalink)  
Antiguo 09/07/2005, 13:55
 
Fecha de Ingreso: octubre-2003
Mensajes: 304
Antigüedad: 14 años, 1 mes
Puntos: 0
Prince, gracias por tu respuesta!

Probé el script modificado y no hay caso, es como que no me toma la variable...
puse esta casilla de texto para ver que pasaba y me muestra "undefined"...

prueba.text = mivariable;

también probé:
prueba.text = _global.mivariable;

Otra prueba que realizé fue cambiar la variable a _root.mivariable, pero sigue dando el mismo error: al clickear el boton le asigna a _root.mivariable el valor de la ultima vuelta del bucle...

que cosa rara...

Código PHP:
for(b=1b<=ab++)
    {
     
// Declaración
     
this["pag"+b]= this.attachMovie("boton" "pag"+100 );
    
     
//Posicionamiento
     
this["pag"+b]._x 25;
     
this["pag"+b]._y 122;

     
//Tareas
     
this["pag"+b].onRelease = function(){gotoAndPlay(2);
                                                       
mivariable b;};
     }; 
  #4 (permalink)  
Antiguo 09/07/2005, 14:04
Avatar de Prince  
Fecha de Ingreso: mayo-2003
Ubicación: DF
Mensajes: 574
Antigüedad: 14 años, 7 meses
Puntos: 1
Por lo que veo de tu código tú estas incrustando MovieClip con attachMovie y ese movieClip, supongo, tiene un botón adentro. No me había fijado en eso.

Lo que sucede es que la variable "b", que es la que lleva el número de iteraciones, no está visible dentro de la función onRelease que le estas definiendo a cada Clip.

La solución es simple.
Tienes que definir una propiedad al movieClip con el valor de "b".
checa...
Código:
_global.mivariable;

for(b=1; b<=a; b++)
    {
     // Declaración
     this["pag"+b]= this.attachMovie("boton" , "pag"+b , b * 100 );
    
     //Posicionamiento
     this["pag"+b]._x = b * 25;
     this["pag"+b]._y = 122;

     //Parte que falta
    this["pag"+b].iteracion = b;

     //Tareas
     this["pag"+b].onRelease = function(){ mivariable = this.iteracion;};
     };
__________________
- P R I N C E -
  #5 (permalink)  
Antiguo 09/07/2005, 14:09
 
Fecha de Ingreso: octubre-2003
Mensajes: 304
Antigüedad: 14 años, 1 mes
Puntos: 0
QUE CAPOO PRINCE!!!!!

Funcionó de 10!

graciasss!
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 07:24.