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!!

Por fredybg el 13 de Diciembre de 2008