Показать сообщение отдельно
Старый 20.06.2011, 15:21
DarkKnight2009 вне форума Посмотреть профиль Отправить личное сообщение для DarkKnight2009 Найти все сообщения от DarkKnight2009
  № 1  
Ответить с цитированием
DarkKnight2009

Регистрация: May 2009
Сообщений: 122
По умолчанию Вывод процента загрузки

Здравсвуйте
Есть код
Код AS3:
package 
{
	import flash.display.*;
	import flash.net.URLRequest;
	import flash.events.*;
	import flash.text.*;
	import flash.text.TextFormat;
	import flash.text.Font;
 
	public class Main extends Sprite
	{
		//---------------------------------------
		// CLASS CONSTANTS
		//---------------------------------------
 
		public static const APP_VERSION:String = "Loadin 0.1 - June 20, 2011";
 
		//---------------------------------------
		// PRIVATE VARIABLES
		//---------------------------------------
 
		private var loader:Loader;		
		private var progressOutput:TextField;	
		private var progressOutputFormat = new TextFormat();		
		private var load_mc:MovieClip;
 
		//---------------------------------------
		// CONSTRUCTOR
		//---------------------------------------
 
		public function Main()
		{		
			trace(APP_VERSION);
 
			createLoader();
			createProgressIndicator();
 
			load( new URLRequest("Module.swf") );			
		}
 
		//---------------------------------------
		// PRIVATE METHODS
		//---------------------------------------
 
		private function createLoader():void
		{
			loader = new Loader();
 
			loader.contentLoaderInfo.addEventListener( ProgressEvent.PROGRESS, progressListener );
			loader.contentLoaderInfo.addEventListener( Event.COMPLETE, completeListener );
			loader.contentLoaderInfo.addEventListener( Event.INIT, initListener );
 
			loader.contentLoaderInfo.addEventListener( IOErrorEvent.IO_ERROR, ioErrorListener );
		}
 
		private function createProgressIndicator():void
		{			
			progressOutputFormat.size = 18;
			progressOutputFormat.color = 0x00334D;
			progressOutputFormat.font = "Arial";
 
			progressOutput = new TextField();					
			//progressOutput.text = "LOADING ...";
			progressOutput.defaultTextFormat = progressOutputFormat;
			progressOutput.x = stage.stageWidth / 2 - 80;
			progressOutput.y = stage.stageHeight / 2 - 40;
			progressOutput.width = 200;
 
			 var bytes_Loaded:Number = stage.loaderInfo.bytesLoaded;
            // перемнная, хранящая число загруженых байт нашего мувика
            var bytes_Total:Number = stage.loaderInfo.bytesTotal;
            // переменная, хранящая обьём фильма (в байтах)
            var s:String = "";
            var percent:Number = 0;
 
			if ( bytes_Total > 0 )
			{
				// проверяем, узнал ли фильм о своём молном размере, чтобы мы не делили на ноль
				percent = Math.floor( bytes_Loaded / bytes_Total * 100 );
				//Считаем сколько процентов уже загрузилось, округляем до целых
 
				s = percent+"%"
 
				trace(s)
			}
 
			load_mc = new Load_mc();
			load_mc.x = stage.stageWidth / 2;
			load_mc.y = stage.stageHeight / 2;
			addChild(load_mc);			
 
		}
 
		private function load( urlRequest:URLRequest ):void
		{
			loader.load(urlRequest);
 
			if( !contains(progressOutput) )
			{
				addChild(progressOutput)
			}
		}
 
		private function progressListener(e:ProgressEvent):void
		{
			progressOutput.text = "LOADING: " + Math.floor(e.bytesLoaded / 1024) + "/" + Math.floor(e.bytesTotal / 1024) + "KB";						
		}
 
 
		private function initListener(e:Event):void
		{			
			MovieClip(loader.content).stop();
		}
 
		private function completeListener(e:Event):void
		{
 
			addChild(loader.content);
			MovieClip(loader.content).play();
			removeChild(progressOutput);
			removeChild(load_mc);
		}
 
		private function ioErrorListener(e:IOErrorEvent):void
		{
			progressOutput.text = "LOAD ERROR";
		}	
 
	}  // end class	
}  //  end package
Проблема в том, что переменная s в trace(s) должна выводить процент загрузки , а она выводит сразу 100% почему так ?
Вот с ф-ей все ок
Код AS3:
private function progressListener(e:ProgressEvent):void
		{
			progressOutput.text = "LOADING: " + Math.floor(e.bytesLoaded / 1024) + "/" + Math.floor(e.bytesTotal / 1024) + "KB";						
		}
Выводит как положено, а проценты не хочет