la cosa non è semplicissima cmq.
tempo fa avevo avuto la stessa esigenza e grazie ad and3a arrivai a questa soluzione


copia e incolla questo sul primo frame
codice:
fscommand("fullscreen", true);
Stage.scaleMode = "exactFit" 
// BLOCCO LA ROOT; SUPERFLUO IN QUESTO CASO, UTILE SE QUESTO SWF 
// E' ALL' INTERNO DI UNA LATRO E CARICATO
this._lockroot = true;

// CREO IL CONTENITORE CHE E' UN MOVIECLIP CON NOME ISTANZA container DI DEFAULT
// A POSIZIONE X = 0 / Y = 0 , VISIBLE E ALPHA 100 con ROTATION 0
this.createEmptyMovieClip( 'container', this.getNextHighestDepth() );

// CREO IL GESTORE DI EVENTI, UN OGGETTO CON METODI DEDICATI
// COME LISTENER DEL MOVIECLIPLOADER ED ALTRI UTILI AL TUO SCOPO
var swfloader:Object = new Object();

// EVENTO LISTENER: onLoadInit
// 	Richiamato dal MovieClipLoader a MC caricato e disponibile
//  [ esiste anche l' onLoadComplete, ma l' MC in quel caso non e' disponibile a keyframe 1 ]
swfloader.onLoadInit = function( mc:MovieClip ):Void {
	
	// POSIZIONO L' SWF CARICATO AL PRIMO FRAME
	_root['container'].gotoAndStop( 1 );
	// LO RENDO VISIBILE
	_root['container']._visible = true;
	// ASSEGNO IL PATH PER RISALIRE ALL' OGGETTO
	// swfloader QUANDO MI SERVIRA' ...
	_root['container'].__path = this;

    //DIMENSIONE CLIP 100%
	_root['container']._xscale = 186; 
	_root['container']._yscale = 191; 

	
	//_root['container']._y = Math.floor( ( Stage.height / 2 ) - ( mc._height / 2 ) );
	// INIZIO L' ONENTERFRAME:
	// onEnterFrame e' un loop che ha latenza 1 fotogramma
	// questo significa che quando e' invocato non parte immediatamente
	// looppa priam sul primo keyframe del MovieClip sulla quale viene applicato
	// poi passa al successivo o fa quello che gli viene detto di fare
	// Nell' onEnterFrame il riferimento di default e' THIS, ovvero il MovieClip
	// alla quale viene applicato.
	_root['container'].onEnterFrame = function() {
		// se il frame di questo MC e' un frame minore del totale frames disponibili ...
		if( this._currentframe < this._totalframes ) {
			// vado al frame successivo , ovvero questo frame + 1
			this.gotoAndStop( ++this._currentframe );
		}
		// altrimenti sono a fine frames, ergo timeline finita
		else {
			// in questo caso controllo che il contenitore con tutti gli MC
			// che e' una variabile interna all' oggetto swfloader che e' il path
			// di riferimento della variabile __path di questo MC assegnata precedentemente
			// ... se non esiste il prossimo filmato, basato sul fatto che l' array
			// swfloader.__container sara' giunto al termine
			if( this.__path.__container[ this.__path.__containerNum ] == undefined ) {
				// allora reimposto la variabile swfloader.__containerNum a 0, cosi' 
				// da ricaricare il primo degli SWF disponibili
				this.__path.__containerNum = 0;
			}
			// a questo punto sono sicuro che esistera' il valore contenuto nell' array
			// swfloader.__container[ this.__path.__containerNum ]
			// che per comodita' incremento di 1 per passare poi al controlo sul valore contenuto
			// nel prossimo indice dell' array swfloader.__container
			this.__path.loadMovie( this.__path.__container[ this.__path.__containerNum++ ] );
			
			// qui elimino questo onEnterFrame perche' non mi serve piu' il LOOP su questo movieClip
			delete this.onEnterFrame;
		}
	}
}

// EVENTO LISTENER: onLoadProgress
// 	Richiamato dal MovieClipLoader durante il caricamento del MovieClip
// ci rende noti i bytes caricati e quelli totali
swfloader.onLoadProgress = function( mc:MovieClip, bl:Number, bt:Number ):Void {
	
	// creo la solita perc , magari la usi ma in locale questo metodo non
	// funzionera' mai, o meglio, non te ne accorgi, solo online servira' a qualcosa
	var p:Number = Math.floor( ( bl / bt ) * 100 );
	if( p != NaN && p != infinity && p > 0 ) {
		trace( mc + ', ' + p );
	}
}

// EVENTO LISTENER: onLoadError
// 	Richiamato dal MovieClipLoader se e' impossibile caricare il file richiesto
// Rende noto l' errore generato
swfloader.onLoadError = function( mc:MovieClip, error:String ):Void {
	trace( error );
}

// EVENTO PERSONALE, ASSEGNATO PER COMODITA': loadMovie
// Questo evento dell' oggetto swfloader altro on fa che eliminare
// il precedente MovieClipLoader per ricrearlo su una variabile interna
// quale e' __ML__ , allo stesso tempo esegue l' unloadMOvie sul MovieClip
// container della _root, probabilmente superfluo visto che un loadMovie su
// un movieClip che ha caricato qualcosa, scarica questo qualcosa in automatico
// ... ma imho sempre meglio fare le cose in modo ordinato
swfloader.loadMovie = function( swf:String ):Void {
	// metto l' MC invisibile, cosi' durante il caricamento, nell' onLoadProgress
	// sono sicuro che se l' SWF non ha STOP(); a inizio filmato tale filmato non mi parta per
	// i fatti suoi frame dopo frame , a seconda di cosa carica
	_root['container']._visible = false;
	
	// se e' almeno la seconda volta che richiamo questo metodo __ML__ sara' definito
	if( this.__ML__ != undefined ) {
		// quindi scarico il MovieClip container e cancello la variabile __ML__ ....
		_root['container'].unloadMovie();
		delete this.__ML__;
	}
	// la quale viene riassegnata o creata come MovieClipLoader
	this.__ML__ = new MovieClipLoader();
	// per poi aggiungergli swfloader come listener, in modo da far gestire al MovieClipLoader
	// glie eventi dedicati descritti sopra
	this.__ML__.addListener( this );
	// per poi dirgli cosa caricare e dove, in questo caso carica il testo contenuto
	// in swf sul movieClip _root['container']
	this.__ML__.loadClip( swf, _root['container'] );
}

// EVENTO PERSONALE, ASSEGNATO PER COMODITA': preload
// Questo metodo er' l' inizializzatore di tutto sto' sistemino di caricamento files
// altro non fara' che leggersi le informazioni sui nomi dei files che andranno a popolare
// l' array creato per gestire il loop, inizializzare, oltre l' array, una variabile
// numerica per controllare o sapere sempre a che punto dell' array sono e cosa devo 
// caricare poi, tale variabile sara' swfloader.__containerNum , mentre l' array sara'
// swfloader.__container
swfloader.preload = function( txtFile:String ):Void {
	
	// creo l' oggetto LoadVars con scope interno, perche' una volta usato non mi servira' piu'
	var __lv__:LoadVars = new LoadVars();
	// dico a questo oggetto il path di riferimento per creare o gestire variabili appartenenti a swfloader
	// ovviamente essendo dentro un metodo di swfloader il path di riferimento sara' THIS, riferito a se stesso
	__lv__.__path = this;
	// scrivo cosa fare all' onLoad
	__lv__.onLoad = function( s:Boolean ):Void {
		// se trovo il file ...
		if( s == true ) {
			// creo la variabile swfloader.__container come nuovo Array
			this.__path.__container = new Array();
			// mi creo una variabile convenzionale per fare il loop delle informazioni nel file di testo
			var a:Number = 0;
			// finche' esiste 'fileN' dove N sara' incrementato di 1 in 1 ad ogni loop di questo ciclo ...
			while( this['file'+String(a)] != undefined ) {
				// aggiungi all' Array swfloader.__container il nome o il testo di questa variabile
				// this['file'+String( a )] sara' esattamente this.file0 , this.file1, etc etc
				// per comodita' incremento la a direttamente in assegnazione
				this.__path.__container.push( this['file'+String( a++ )] );
			}
			// arrivati a this.fileN , inesistente , quindi undefined, quindi usciti dal ciclo precedente ...
			// creo la variabile numerica swfloader.__containerNum facendola partire da 0 ... poi
			// sara' questo applicativo stesso a gestirla, incrementarla o riresettarla
			this.__path.__containerNum = new Number( 0 );
			
			// bene, ho le informazioni sull' array, ho il primo elemento da caricare
			// ... quale momento migliore per far partire il tutto ???
			this.__path.loadMovie( this.__path.__container[ this.__path.__containerNum++ ] );
			// per comodita' incremento di uno la variabile swfloader.__containerNum
			// cosi' al prossimo controllo sull' array verifichero' che esista
			// swfloader.__container[1] e non zero che gia' so di averlo usato e che quindi e' presente nell' array
		}
		else {
			// impossibile caricare il file di testo
			this.__path.onLoadError( _root, 'Impossibile caricare il file: ' + txtFile );
		}
	}
	
	// effettuo il load del file specificato in txtFile
	__lv__.load( txtFile );
}

// avvio l' ambaradan ...
swfloader.preload( 'file.txt' );
nel file txt che devi chimare in questo caso sile.txt devi avere una cosa così,
dove pippo pluto sono i filmati esterni che caricherai in loop
codice:
&file0=pippo.swf&
&file1=pluto.swf&
&file2=paperino.swf&
&file3=prova.swf&
non importa quanto durani i filmati li esegue cmq uno alla volta indipendentemente dalla loro durata

ricorda che lo stage dei tuoi swf esterni deve essere di 1024 * 576