Usar una clase Enumerator para sustituir a _global es cómodo si se utiliza dentro de un mismo swf... lo que pasa es que usarlo con swf convinados (unos cargados en otros) puede traer multitud de problemas.
/***** CREACIÓN DE LA CLASE *****/
Para hacer la clase 'Globales' te creas junto a tu archivo fla uno llamado "Globales.as" y le pones, por ejemplo, este código:
Código :
package{
public class Globales{
public static variable1:String = "";
public static const constante1:String = "El pajarito mirando...";
}
}
Por cada antiguo "_global" que quieras 'simular' deberás declararlo ahí. Por ejemplo, si antes tenías un _global.cantidad, de tipo int, pues tendrías que añadir dentro de la clase Globales:
Código :
public static cantidad:Int = 0;
Las inicializaciones, en este caso (para las variables), son lo de menos. Pero una opción de 'simularlo' por estáticos es que podemos declarar constantes. Si por ejemplo antes tenías que iniciar las variables _global a un determinado valor que continuaría durante todo el tiempo... ahora puedes hacer que ese miembro estático de la clase sea, además, const, es decir, constante:
Código :
public static const direccion:String = "http://www.mihost.com/minombreusuario/swf/ver1/";
/***** UTILIZACIÓN DE LA CLASE *****/
Cuando la tengamos montada esta clase, podemos simular el uso de "_global" accediendo a la propia clase (ojo, no a una instancia de la clase, eh) de la siguiente forma.
Código :
trace( Globales.variable1 ); // imprime ""
Globales.variable1= "cadena"; // asigna el string "cadena" a la variable1 (lo que sería _global.variable1 = "cadena";)
trace( Globales.variable1 ); // imprime "cadena"
Si queremos usar más adelante el valor de la variable globla variable1 en cualquier clip podemos utilizando el mismo código.
Código :
trace( Globales.variable1 ); // imprime "cadena", o el último valor asignado a Globales.variable1 desde cualquier función.