继 SafeLoader(安全加载器) 继续开源.
以下是以速度第一为准则的载入策略,仍然具有简单的纠错机制。大家觉得这个有用的话,就顶一下。版主觉得写得还行,就跟我加分,谢谢。
FastLoader.as 源代码:
/*
* 作者姚伟。闪吧ID:hust。
* 你可以修改和使用此代码。但请著名原作者,谢谢。
* 2006.2.12
* 快速但冒险的并发载入模式--FastLoader(快速加载器)
*/
class loaders.FastLoader
{
private static var taskArr : Array = new Array ();
private static var mclArr : Array = new Array ();
private static var listArr : Array = new Array ();
public static var waitNum : Number = 0;
public static var loadedNum : Number = 0;
public static var loadingNum : Number = 0;
public static var totalNum : Number = 0;
//private var loader
//private static var LoadID : Number;
public static function addTask (url : String, target_mc : MovieClip )
{
trace ("addTask");
taskArr.push ([url, target_mc]);
totalNum ++;
waitNum ++;
}
private static function preLoad ()
{
for (var i=0; i < taskArr.length; i ++)
{
trace ("i=" + i);
listArr [i] = new Object ();
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 (var i = 0; i < taskArr.length; i ++)
{
mclArr [i] = new MovieClipLoader ();
mclArr [i].addListener (listArr [i]);
}
}
public static function startLoad ()
{
preLoad ();
//mclArr [0].loadClip (taskArr [0][0] , taskArr [0][1]);
for (var i = 0; i < taskArr.length; i ++)
{
mclArr [i].loadClip (taskArr [i][0] , taskArr [i][1]);
}
}
}