Lo schema che devo realizzare è questo



in pratica ho un Main.fla che deve precaricare un altro fla (libreria.fla) e quest'ultimo deve essere sempre posizionato al centro dello stage sull'asse x e attaccato sempre in alto quindi y sempre =0;

e qui primo problema, spiego brevemente come ho fatto:
al Main.fla ho fatto una classe di documento Main.as.
Main.as mi precarica in un mc libreria.swf poi mi fa l'addChild sullo stage, a questo punto ho messo gli eventi sul resize per riposizionarlo. NON funziona.

Codice di Main.as
codice:
package  {
	import Caricamento;
	import flash.display.*;
	import flash.events.Event;
	
	//inizio classe Main
	public class Main extends MovieClip {
		private var loStage:Caricamento;
		private var _fla:MovieClip;
				
		//costruttore
		public function Main() {
			_fla=this;
			init();
		}
		
		private function init():void {
			loStage=new Caricamento(this,"libreria.swf","Stage...");

			loStage.y=0;
			loStage.x=(stage.stageWidth/2)-(900/2);
			
			addChild(loStage);

			//imposto le proprietà dello stage
			stage.frameRate=40;
			stage.scaleMode = StageScaleMode.NO_SCALE;
            stage.align = StageAlign.TOP_LEFT;
            
			//eventi di stage
			stage.addEventListener(Event.ACTIVATE, activateHandler);
            stage.addEventListener(Event.RESIZE, resizeHandler);
			
		}
		
		private function activateHandler(event:Event):void {
            //trace("activateHandler: " + event);
        }

        private function resizeHandler(event:Event):void {
			//riposiziona lo stage
			loStage.x=(stage.stageWidth/2)-(900/2);
			loStage.y=0;
        }
		
		
	}//fine classe
}//fine package
il tipo Caricamento è un'altra classe che ho fatto per gestire il preload, è un'estensione della classe MovieClip

codice:
package {
	import flash.display.MovieClip;
	import flash.display.Loader;
	import flash.events.*;
	import flash.net.URLRequest;
	import SeguiMouse;

	public class Caricamento extends MovieClip {
		private var daCaricare:String;
		public var loader:Loader;
		public var segui:SeguiMouse;
		private var labelCaricare:String;
		private var _fla:MovieClip;
		
		//ESCAMOTAGE per convertire un loader in moveclip
		//creo un oggetto generico non definito di tipo * che ospiterà il loader.content
		private var mymovie:*
		
		//ESCAMOTAGE variabile per ospitare la variabile movie generica, a quel punto posso usare
		//l'elemento caricato come un movieclip!
		private var myclip:MovieClip;

		public function Caricamento(fla:MovieClip,stringaUrl:String,cosaCarico:String) {
			daCaricare=new String(stringaUrl);
			labelCaricare=cosaCarico;
			_fla=fla;
			init();
		}
		
		private function init():void {
			var request:URLRequest=new URLRequest(daCaricare);
			loader=new Loader();
			initListeners(loader.contentLoaderInfo);
			loader.load(request);
		}
		
		private function initListeners(dispatcher:IEventDispatcher):void {
			dispatcher.addEventListener(Event.OPEN,inizia);
			dispatcher.addEventListener(ProgressEvent.PROGRESS,inCaricamento);
			dispatcher.addEventListener(Event.COMPLETE,completato);
		}
		
		private function inizia(event:Event):void {
			segui= new SeguiMouse();
			_fla.addChild(segui);
			
		}
		
		private function inCaricamento(event:ProgressEvent):void {
			var perc:uint=(event.bytesLoaded/event.bytesTotal)*100;
			segui._label=labelCaricare;
			segui.percentuale=perc+"%";
		}
		
		public function completato(event:Event):void {
			mymovie=loader.content
			myclip=mymovie;
			_fla.addChild(myclip);
			_fla.removeChild(segui);
		}
	}
}
a classe SeguiMouse non la sto a postare tanto non serve.

PROBLEMA 1:
Non mi si riposiziona loStage, variabile di tipo Caricamento in Main.as, mi resta sempre attaccato in alto a sinistra. dove sbaglio?

PROBLEMA 2:
Devo ridimensionare a seconda della grandezza dello stage il bg_mc che è un livello dentro a Libreria.fla. Quindi dovrei portarmi dietro da qualche parte e in qualche maniera la variabile stage.stageWidth e stage.stageHeigh un po' come se fossero variabili globali (concetto che non esiste nella programmazione ad oggetti e in AS3 mi sa).
Dovrei concettualmente fare una cosa simile nel Main.as
codice:
.
.
private function resizeHandler(event:Event):void {
	//riposiziona lo stage
	loStage.x=(stage.stageWidth/2)-(900/2);
	loStage.y=0;

        //ridimensiono il bg_mc
       loStage.bg_mc.width=stage.stageWidth;
       loStage.bg_mc.height=stage.stageHeight;
}
.
.
ma chiaramente non si può fare così... ci sto perdendo un sacco di tempo senza togliere un ragno da un buco, mi potete dare una mano?

Grazie