2011-04-15 98 views
0

我已經找到了這樣的代碼,它可以用於在我以前做過的舊AS2項目中預加載單個'Q1.swf'。我如何調整它以預先加載5個SWF?我可以將它們全部加載到相同的目標MC,還是必須將它們加載到單獨的級別或不同的目標上。 由於預算不允許,我不想將項目更改爲AS3。當從CD和在線查看項目時,這項工作也會如何?用AS2預加載外部swfs

stop(); 
preloader._visible = false; 
preloader.bar._xscale = 0; 
var mclListener:Object = new Object(); 
mclListener.onLoadInit = function(container:MovieClip) { 
trace('initialized'); 
}; 
mclListener.onLoadStart = function(container:MovieClip) { 
preloader._visible = true; 
trace('started'); 
}; 
mclListener.onLoadProgress = function(mc, w, t) { 
trace('progress: '+w+", "+t); 
var w = container.getBytesLoaded(); 
var t = container.getBytesTotal(); 
preloader.percent = Math.round(w/t*100)+"%"; 
preloader.bar._xscale = Math.round(w/t*100); 
}; 
mclListener.onLoadComplete = function(container:MovieClip) { 
trace("loaded"); 
preloader._visible = false; 
_root.play(); 
}; 
mclListener.onLoadError = function(container:MovieClip, errorCode:String) { 
preloader._visible = false; 
trace('not loaded'); 
}; 
var container1:MovieClipLoader = new MovieClipLoader(); 
container1.addListener(mclListener); 
container1.loadClip("Q1.swf", container); 

回答

0

我做這樣的事情:

function loadSection() { 
    ext_mc.loadMovie("01.swf"); 
    bg_mc.loadMovie("bg.swf"); 

    _root.createEmptyMovieClip("ctrl_mc",_root.getNextHighestDepth()); 
    _root.ctrl_mc.onEnterFrame = function() { 
     vbt = ext_mc.getBytesTotal() + bg_mc.getBytesTotal() 
     vbl = ext_mc.getBytesLoaded() + bg_mc.getBytesLoaded() 
     if (vbl >= vbt && vbl > 200) { 

      delete _root.ctrl_mc.onEnterFrame;    
      trace("do something") 
     } 
    }; 
}