一个loader加载多个swf

var _swfLoader:Loader;
var _swfRequest:URLRequest;
 
var _swfPathArr:Array = new Array("00.swf", "01.swf", "02.swf");
 
var _swfClipsArr:Array = new Array();
var _swfTempClip:MovieClip;
var _loadedSWFs:int;
 
 
startLoading(_swfPathArr);
 
function startLoading(pathArr:Array):void {
    _swfLoader = new Loader();
    _swfRequest = new URLRequest();
   
    loadSWF(pathArr[0]);
}
 
function loadSWF(path:String):void {
    setupListeners(_swfLoader.contentLoaderInfo);
   
    _swfRequest.url = path;
    _swfLoader.load(_swfRequest);
}
 
function setupListeners(dispatcher:IEventDispatcher):void {
    dispatcher.addEventListener(Event.COMPLETE, onSwfComplete);
    dispatcher.addEventListener(ProgressEvent.PROGRESS, currentSwfProgress);
}
 
function currentSwfProgress(event:ProgressEvent):void {
    var _perc:int = (event.bytesLoaded / event.bytesTotal) * 100;
    // swfPreloader.percentTF.text = _perc + "%";
}
 
 
function onSwfComplete(event:Event):void {
    event.target.removeEventListener(Event.COMPLETE, onSwfComplete);
    event.target.removeEventListener(ProgressEvent.PROGRESS, currentSwfProgress);
 
    _swfTempClip = event.target.content;
    _swfTempClip.customID = _loadedSWFs;
    _swfClipsArr.push(_swfTempClip);
   
    if(_loadedSWFs <_swfPathArr.length - 1) {
        _loadedSWFs++;
        loadSWF(_swfPathArr[_loadedSWFs]);
    } else {
        _swfLoader.unloadAndStop();
        _swfLoader = null;
        onCompletePreloading();
    }
}
 
function onCompletePreloading():void {
    contentContainer.addChild(_swfClipsArr[0]);
   
    news_btn.addEventListener(MouseEvent.CLICK, setContent);
    portfolio_btn.addEventListener(MouseEvent.CLICK, setContent);
    contact_btn.addEventListener(MouseEvent.CLICK, setContent);
}
 
function setContent(event:MouseEvent):void {
    var _swfToAdd:MovieClip;
   
    switch(event.target.name) {
        case "news_btn":
        _swfToAdd = _swfClipsArr[0];
        break;
       
        case "portfolio_btn":
        _swfToAdd = _swfClipsArr[1];
        break;
       
        case "contact_btn":
        _swfToAdd = _swfClipsArr[2];
        break;
    }
   
    contentContainer.removeChildAt(contentContainer.numChildren-1);
    contentContainer.addChild(_swfToAdd);
    trace(_swfToAdd.customID);
}
http://www.beautifycode.com/the-finer-art-of-loading-2-handling-multiple-swfs
原文地址:https://www.cnblogs.com/602147629/p/3909611.html