Kriptonitex, lo que Marrkitos quiere decir es que, para que puedas hacer un addChild sobre un Objeto, ese objeto ha de pertenecer a una Clase debe "Extender" de un "DisplayObjectContainer" (o de alguna clase que extienda de ella, esto es Sprite, Stage, Loader ó de alguna clase que extienda de estas últimas, como MovieClip)
Código ActionScript :
public class Objetos extends Sprite { //<--por ejemplo lo hago que extienda de Sprite
}
Con eso, los botones se añadirían al Objeto de la Clase Objetos que a su vez la deberíamos añadir al Stage. Esot es, en la película principal
Código ActionScript :
var objetos:Objetos=new Objectos();
objetos.creaObjetos();
objetos.addChild()
O, si tenemos una "clase de documento", por ejemplo la llamamos "Main" y tenemos, un fichero llamado "main.as"
Código ActionScript :
package{
public Class Main extends MovieClip { //<--la Clase de documento ha de extender de MovieClip
//declaro aquí la variable "objetos", para que sea accesible desde cualquier sitio
var objetos:Objetos
public funcion Main(){ //<--esto es el contructor y será lo primero que haga
//nuestra película
objetos=new Objectos();
objetos.creaObjetos()
objetos.addChild()
}
}
}
NOTA:Si lo que querías es que la "clase de documento" de tu película Flash fuera "Objetos", objetos.as debería ser de la forma
Código ActionScript :
package{
public Class Objetos extends MovieClip { //<--la Clase de documento ha de extender de MovieClip
public function Objetos(){
creaObjetos();
}
private function creaObjetos() {
var downButton:Button = new Button();
downButton.label = "hola";
downButton.setSize(20, 20);
downButton.move(10, 30);
addChild(downButton);
}
}
}
Vemos que una Clase tiene
1.-Una zona de variables accesibles desde cualquier función (se suele llamar "método") de la Clase
2.-Una función "constructora" con el mismo nombre de la Clase que es lo PRIMERO que se ejecuta cuando se hace un "new"
Código ActionScript :
var variable:MiClase=new MiClase()
o, si es la clase de documento, cuando se incia la película
3.-Diversas funciones auxiliares
4.-Una Clase, si no le decimos nada es de tipo "Objeto", si queremos que tenga más propiedades o métodos que un "simple Objeto" debemos "extenderla" de alguna clase superior