继 SafeLoader(安全加载器) 继续开源.
以下是以速度第一为准则的载入策略,仍然具有简单的纠错机制。
FastLoader.as 源代码:
/*
*作者姚伟。闪吧ID:hust。
*你可以修改和使用此代码。但请著名原作者,谢谢。
*2006.2.12
*快速但冒险的并发载入模式--FastLoader(快速加载器)
*/
classloaders.FastLoader
{
privatestaticvartaskArr:Array=newArray();
privatestaticvarmclArr:Array=newArray();
privatestaticvarlistArr:Array=newArray();
publicstaticvarwaitNum:Number=0;
publicstaticvarloadedNum:Number=0;
publicstaticvarloadingNum:Number=0;
publicstaticvartotalNum:Number=0;
//privatevarloader
//privatestaticvarLoadID:Number;
publicstaticfunctionaddTask(url:String,target_mc:MovieClip)
{
trace("addTask");
taskArr.push([url,target_mc]);
totalNum++;
waitNum++;
}
privatestaticfunctionpreLoad()
{
for(vari=0;i<taskArr.length;i++)
{
trace("i="+i);
listArr[i]=newObject();
listArr[i].onLoadStart=function()
{
waitNum--;
loadingNum++;
}
listArr[i].onLoadProgress=function()
{
}
listArr[i].onLoadComplete=function()
{
}
listArr[i].onLoadInit=function()
{
loadingNum--;
loadedNum++;
//success,next
trace("onLoadInit");
trace("i="+i);
}
listArr[i].onLoadError=function()
{
mclArr[i].loadClip(taskArr[i][0],taskArr[i][1]);
}
}
for(vari=0;i<taskArr.length;i++)
{
mclArr[i]=newMovieClipLoader();
mclArr[i].addListener(listArr[i]);
}
}
publicstaticfunctionstartLoad()
{
preLoad();
//mclArr[0].loadClip(taskArr[0][0],taskArr[0][1]);
for(vari=0;i<taskArr.length;i++)
{
mclArr[i].loadClip(taskArr[i][0],taskArr[i][1]);
}
}
}