Eso es debido a un motivo nada esotérico, os lo prometo, resulta que Adobe (bueno antes Macromedia o lo que quede de ella) está empeñada en que ActionScript sea un lenguaje que cumpla los estándares de la OOP o la POO, que en cristiano significa Programación orientada a objetos.
No me voy a extender en explicar qué es eso, ya que corro el riesgo de repetir lo que ya han explicado millones de seres humanos, si tenéis curiosidad podéis daros un garbeo por aquí.
Lo importante es que vosotros queréis acceder a una variable desde cualquier parte de vuestra línea de tiempo para recuperar o modificar su valor, fale, aquí está la solución:
1. Solución elegante para fardar en los foros contestando a algún desesperado:
Abrimos Flash y creamos un nuevo documento as, en dicho documento hacemos copy paste de esto:
package
{
public class MisGlobales
{
public static var vars:Object = [];
}
}
Guardamos el archivo con nombre MisGlobales.as en la misma carpeta donde esté guardado el archivo .fla donde queremos utilizarla (se pueden referenciar las rutas hacia las clases as en las propiedades del proyecto pero para este ejemplo vamos a hacerlo así para no liar demasiado a los que se inician).
Una vez hecho esto escribis en la ventana de código del primer frame de vuestra película flash (primera escena-primer frame por coherencia o ¿no son globales lo que queréis?):
import MisGlobales;
MisGlobales.vars.root = this;
Después sólo tenéis que definir las variables allí donde os sean necesarias, dentro de vuestra películar, por ejemplo así:
import MisGlobales;
MisGlobales.vars.nombreCualquieraDeVariable = 999;
MisGlobales.vars.apellido = "Bejarano";
trace("Compruebo que todo funciona bien, mi apellido es: "+MisGlobales.vars.apellidos);
Esto es todo amigos.
5 comentarios:
Excelente aporte, me sacaste de un problemononon gigante.....Muchas Gracias, Saludos desde Colombia
Gracias acabas de arreglar mi vida jejeje
ME FUE DE GRAN AYDUA, GRACIAS
alguien me podría compartir un ejemplo llevo 3 hrs y no eh podido, le agradezco.
10 Años después y el tutorial sigue siendo full útil. La verdad, llevaba mas de un mes buscando solución a mi problema y tú lo has resuelto en unas cuantas lineas. Eres el Mejor.
Salu2
Publicar un comentario