Comunidad de diseño web y desarrollo en internet online

Cómo mantener en AS2 el entorno en la clase principal

En ActionScript 2 al trabajar con clases no podemos asignarle al Stage o _root una clase principal, si no que tenemos que hacer algo de este tipo:

Código :

import com.cristalab.Application;
var app:Application = new Application(this);


Luego en nuestra clase nos guardamos la referencia de this y la pasamos todo el rato.

Código :

class com.cristalab.Application extends MovieClip
{
   private var scope:MovieClip;
   
   public function Application(_scope:MovieClip)
   {
      scope = _scope;
      scope.miBoton._x = 100;
   }
}


Sin embargo, de esta forma perdemos todas las referencias de las clases a objetos que haya en scope, con lo que no podremos observar sus métodos cuando trabajemos con FDT o FlashDevelop.

Para evitar esto, podemos poner lo siguiente en el fotograma 1 de nuestra aplicación:

Código :

import com.cristalab.Application;
this.__proto__ = Application['prototype'];
var app = Application;
app.apply ( this, [] );


De esta forma podemos tener objetos en _root que tengan asociadas referencias de clases y poder inspeccionar sus métodos internos.

Código :

class com.cristalab.Application extends MovieClip
{
   private var miBoton:BotonPersonalizado;
   
   public function Application()
   {
      miBoton._x = 100;
   }
}


Mucho más fácil y parecido a como se hace ahora en ActionScript 3.

Un saludo!! ^^

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate