He estado probando pegar un movieClip desde la libreria dinámicamente al escenario poniendo el código desde la línea de tiempo y lo hace bien. El problema es que al intentar crear una clase con la misma función, no he podido accesar a las propiedades del Stage, me provoca un "Error #1009: Cannot access a property or method of a null object reference." al momento de compilar. Cómo debo hacer para acceder a las propiedades del stage desde una clase?
Gracias!
Aquí el código que puse en mi timeline:
Código ActionScript :
// import unaClase; var miClase:unaClase = new unaClase(); addChild(miClase); import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldAutoSize; var unaVentana:Sprite = new elMovieDeLaLibreria(); //"elMovieDeLaLibreria" es el linkageName que se le dio al MovieClip para llamarlo via código unaVentana.x = stage.stageWidth/2 - unaVentana.width/2; unaVentana.y = stage.stageHeight/2 - unaVentana.height/2; unaVentana.name = "unaVentana"; var unCampo:TextField = new TextField(); unCampo.text = "Esta ventana se pegó desde la libreria y este campo de texto se creo dinámicamente en su interior."; unCampo.autoSize = TextFieldAutoSize.LEFT; unCampo.selectable = false; unCampo.wordWrap = true; unCampo.width = unaVentana.width-20; unCampo.x = unaVentana.width/2 - unCampo.width/2; unCampo.y = unaVentana.height/2 - unCampo.height/2; unaVentana.addChild(unCampo); addChild(unaVentana); //
Al ejecutar ese código todo sale bien, pega desde la librería un movieclip llamado "elMovieDeLaLibreria" y crea en su interior un campo de texto, centra la ventana, centra el campo de texto etc..
Este es el código que puse en la clase:
Código ActionScript :
// package { import flash.display.MovieClip; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.display.Stage; public class unaClase extends MovieClip { public function unaClase() { // constructor code var unaVentana:MovieClip = new elMovieDeLaLibreria(); //"elMovieDeLaLibreria" es el linkageName que se le dio al MovieClip para llamarlo via código addChild(unaVentana); unaVentana.x = stage.stageWidth/2 - unaVentana.width/2; unaVentana.y = stage.stageHeight/2 - unaVentana.height/2; unaVentana.name = "unaVentana"; var unCampo:TextField = new TextField(); unCampo.text = "Esta ventana se pegó desde la libreria y este campo de texto se creo dinámicamente en su interior."; unCampo.autoSize = TextFieldAutoSize.LEFT; unCampo.selectable = false; unCampo.wordWrap = true; unCampo.width = unaVentana.width-20; unCampo.x = unaVentana.width/2 - unCampo.width/2; unCampo.y = unaVentana.height/2 - unCampo.height/2; unaVentana.addChild(unCampo); } } } //
Aquí ya sale el "Error #1009: Cannot access a property or method of a null object reference.". Si hago un trace(stage) me regresa null.
Lo que intento hacer desde la clase es como en el script que puse en el timeline, centrar la ventana del movieclip que coloque dinamicamente.
