Показать сообщение отдельно
Старый 06.04.2009, 13:38
Gorbunkoff вне форума Посмотреть профиль Отправить личное сообщение для Gorbunkoff Найти все сообщения от Gorbunkoff
  № 1  
Ответить с цитированием
Gorbunkoff
 
Аватар для Gorbunkoff

Регистрация: Mar 2007
Сообщений: 13
По умолчанию Как определить кто быстрее загружается ?

Есть в общем то рабочий код в соответствии с которым 3 картинки (скажем это фотки тракторов ) грузяться каждая на свое место и со своим предзагрузчиком. При этом в мультике одновременно отображаюся все три работающие загрузчика. Никак не могу сообразить как сделать
так , чтобы отбражался только тот предагрузчик который опережает
по скорости другие.
Код AS3:
//*********************************************************
// Глобальные константы
package {
	public class Globals {
		public static var Path:String="file:///C|/некий путь/Images/";
		public static var Url:String=null;
		public static var sdvig:uint=0;
		public static var images:Array=["P1.gif","P2.gif","P3.gif"];
		public static var Tname:Array=["Name1","Name2","Name3"];
		public static var I:Number=0;
	}
}
;
 
//*********************************************************
// Цикл загрузки изображений - основной класс документа
package {
	import flash.display.MovieClip;
	import LoadImage;
	import Globals;
 
	dynamic public class Start extends MovieClip {;
	public static var dt:Number=1;
	public static var MC:Array=new Array  ;
 
	public function Start() {
 
		while (Globals.I<Globals.images.length) {
			Globals.sdvig=Globals.I*120;
			Globals.Url=Globals.Path+Globals.images[Globals.I];
			MC[Globals.I]=new LoadImage  ;
			MC[Globals.I].x=Globals.sdvig;
			MC[Globals.I].TractorsName.text=Globals.Tname[Globals.I];
			addChild(MC[Globals.I]);
			Globals.I+=1;
 
		}
	}
 
}
}
&#65279;;
//*********************************************************
// Предзагрузчик
package {
import flash.display.*;
import flash.events.*;
import flash.net.URLRequest;
import flash.text.*;
 
 
public class LoadImage extends MovieClip {
	var _loaderStatus:TextField;
	var TractorsName:TextField;
	var percent:Number;
 
	var loader:Loader=new Loader  ;
	public function LoadImage() {
		TractorsName=new TextField  ;
		var percent=new Number  ;
		var loader:Loader=new Loader  ;
		addChild(loader);
 
		// Добавляем обработчики событий 
		// для контроля за процессом загрузки 
		loader.contentLoaderInfo.addEventListener(Event.OPEN,openHandler);
		loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,progressHandler);
		loader.contentLoaderInfo.addEventListener(Event.COMPLETE,completeHandler);
 
		// Загружаем внешнее изображение 
		loader.load(new URLRequest(Globals.Url));
 
	}
	// Обработка окончания загрузки
	private function completeHandler(event:Event):void {
 
 
		removeChild(_loaderStatus);
		_loaderStatus=null;
		TractorsName.visible=true;
 
 
	}
	// Обработка начала загрузки
	private function openHandler(event:Event):void {
 
		_loaderStatus=new TextField  ;
		addChild(_loaderStatus);
		_loaderStatus.text="Загрузка: 0%";
		_loaderStatus.border=true;
		_loaderStatus.autoSize=TextFieldAutoSize.LEFT;
 
 
		TractorsName.border=true;
		TractorsName.autoSize=TextFieldAutoSize.LEFT;
		TractorsName.visible=false;
		addChild(TractorsName);
	}
	// Обработка процесса загрузки
	private function progressHandler(event:ProgressEvent):void {
		percent=Math.floor(event.bytesLoaded/event.bytesTotal*100);
		_loaderStatus.text="Загрузка:"+percent+"%";
	}
 
	private function unLoadHandler(event:Event):void {
		trace("unLoadHandler: "+event);
	}
 
}
}