Eso es porque se inicializa antes de que le hagas el "addChild" en el swf que lo carga... y no tiene acceso al stage, por eso, casi siempre, es buena practica usar addEventListener(Event.ADDED_TO_STAGE) en el constructor de los objetos que extienden DisplayObject y tienen en su logica un acceso al stage.
En el swf cargado (child):
Código ActionScript :
class SubSWFMain extends Sprite
// constructor.
public function SubSWFMain():void {
// si this.stage existe (x ejemplo, cuando compilas o ejecutas este subswf), llama al metodo inicializador...
// sino (stage no disponible, como cuando lo cargas con un swf externo), agregas un listener para saber cuando se agrega al stage... llamando al mismo metodo, (que tiene como parametro opcion, el evento)
stage ? init(null) : addEventListener(Event.ADDED_TO_STAGE, init );
}
public function init( event:Event=null ):void {
removeEventListener(Event.ADDED_TO_STAGE, init );
// aca pone tu codigo, stage existe...
stage.align = StageAlign.TOP_LEFT ;
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.showDefaultContextMenu =
.... blablalba
}