Preloade Multiple Elements

Hello,

Let’s say I have a movie clip… it’s a dynamically created movie clip. In this movie clip i want to put several other movie clips that have other content being loaded into them. Such as a jpeg image, a library ready movieclip, and text retrieved from a database using PHP.

What I want to know… is how do I load all these “seperate” elements inside the one parent or container clip… using a preloader.

I know how to use preloaders for individual things such as images, and other swf files… but i don’t know how to create a preloader for MULTIPLE elements.

Thanks in advance for any guidelines and/or direction.

Sample: Loads a single image… halfway to what what I want.


/** 
    setHeader class 
    author: Ahmed I. Masri 
    version: 1.1 
    modified: 08/11/2008 
    copyright: Ahmed I. Masri 

    This code sets the header of the site
*/

// Import Built-In Classes
import mx.utils.Delegate;
import mx.transitions.Tween;
import mx.transitions.easing.*;

// Import Custome Classes
import contentManager;

// Class Definition
class setHeader {

	// Variable Definitions
	var headerXPos:Number;
	var headerYPos:Number;
	var container:MovieClip;
	var headerHolder:MovieClip;
	var miniLoader:MovieClip;
	var listener:Object;
	var headerLoader:MovieClipLoader;
	
	// Public Function to start preloader
	public function setHeader() {
		// Define scope of container
		container = _root.mc_stageHolder;
		
		// Set Position according to language
		if (_global.lang != "ar") {
			headerXPos = 0;
			headerYPos = 5;
		} else {
			headerXPos = 540;
			headerYPos = 5;
		}
		
		// Run Function to set header
		setLogoAndPos();
	}
	
	// Private function to set the header of the site
	private function setLogoAndPos():Void {
		// Variable Definition
		headerHolder = new MovieClip;
		headerLoader = new MovieClipLoader();
		listener = new Object();
		
		// Attach listner to stageLoader Movie Clip Loader
		headerLoader.addListener(listener);
		
		// Create empty Movie Clip to hold Header content
		headerHolder = container.createEmptyMovieClip("mc_headerHolder", container.getNextHighestDepth());
		headerHolder._x = headerXPos;
		headerHolder._y = headerYPos;
		
		// Delegate (pre)loading functions
		listener.onLoadStart = Delegate.create(this, onLoadStart);
		listener.onLoadProgress = Delegate.create(this, onLoadProgress);
		listener.onLoadInit = Delegate.create(this, onLoadInit);
		
		// Attach preloader clip for loading process
		miniLoader = container.attachMovie("mc_miniLoader", "mc_miniLoaderHeader" , container.getNextHighestDepth(), {_x:headerXPos, _y:headerYPos});
		miniLoader.mc_preloaderBar._width = 0;		
		
		// Load main movie
		headerLoader.loadClip("./images/logo/" + _global.lang + "-logo.jpg", headerHolder);
	}
	
	// Function to handle start of (pre)loading
	private function onLoadStart():Void {
		// Set _alpha of header to 0
		headerHolder._alpha = 0;
	}
	
	// Function to handle progress of (pre)loading
	private function onLoadProgress(mc:MovieClip, l:Number, t:Number):Void {
		// Update Text Field and Progress Bar
		miniLoader.mc_preloaderBar._width = (l / t) * 100;
	}
	
	// Function to handle completion of (pre)loading
	private function onLoadInit():Void {
		// Tween header to fade in
		var headerHolderTween:Tween = new Tween(headerHolder, "_alpha", Strong.easeOut, 0, 100, 10, false);
		
		var thisButton = headerHolder;
		thisButton.onPress = function() {
			// Change page content
			var lcontent:contentManager = new contentManager("change", "home");
		}
		
		// Remove miniLoader
		miniLoader.removeMovieClip();
	}
}