/* * 作者姚伟。闪吧ID:hust。Email:yaowei821127@163.com * 你可以修改和使用此代码。但请著名原作者,谢谢。 * 2006.2.12 * 保守但安全的逐个载入模式--SafeLoader(逐个加载器) */ class loaders.SafeLoader{ 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 = new Object (); listArr .onLoadStart = function () { waitNum --; loadingNum ++; } listArr .onLoadProgress = function () { } listArr .onLoadComplete = function () { } listArr .onLoadInit = function () { loadingNum --; loadedNum ++; //success,next trace ("onLoadInit"); trace ("i=" + i); if (loadedNum < (SafeLoader.taskArr.length)) { trace ("启动下一个"); mclArr [loadedNum].loadClip (taskArr [loadedNum][0] , taskArr [loadedNum][1]); } } listArr .onLoadError = function () { //error,again mclArr [loadedNum-1].loadClip (taskArr [loadedNum-1][0] , taskArr [loadedNum-1][1]); } } for (var i = 0; i < taskArr.length; i ++){ mclArr = new MovieClipLoader (); mclArr .addListener (listArr ); } } public static function startLoad (){ preLoad (); mclArr [0].loadClip (taskArr [0][0] , taskArr [0][1]); } }