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

Регистрация: Dec 2009
Сообщений: 125
Цитата:
Сообщение от namespaces Посмотреть сообщение
Прелоадеры бывают внешние и внутренние. Если основная флешка тяжелая, лучше воспользоваться внешней.
Даже не знаю что тебе посоветовать, в сети столько примеров, готовые классы есть.
Внешний или внутренний, определяется поставленной задачей, а не размером флешки.

Вот FDшный:
Код AS3:
package
{
	import flash.display.DisplayObject;
	import flash.display.MovieClip;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
	import flash.events.Event;
	import flash.events.IOErrorEvent;
	import flash.events.ProgressEvent;
	import flash.text.TextField;
	import flash.utils.getDefinitionByName;
 
	public class Preloader extends MovieClip
	{
		private var _progressField:TextField;
 
		public function Preloader()
		{
			if (stage)
			{
				stage.scaleMode = StageScaleMode.NO_SCALE;
				stage.align = StageAlign.TOP_LEFT;
				//stage.showDefaultContextMenu = false;
 
				_progressField = new TextField();
				_progressField.width = 40;
				_progressField.height = 40;
				_progressField.x = stage.stageWidth / 2 - 20;
				_progressField.y = stage.stageHeight / 2 - 20;
				addChild(_progressField);
			}
			addEventListener(Event.ENTER_FRAME, checkFrame);
			loaderInfo.addEventListener(ProgressEvent.PROGRESS, progress);
			loaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioError);
		}
 
		private function ioError(e:IOErrorEvent):void
		{
			trace(e.text);
		}
 
		private function progress(e:ProgressEvent):void
		{
			_progressField.text = Math.floor(100 / e.bytesTotal * e.bytesLoaded) + "%";
		}
 
		private function checkFrame(e:Event):void
		{
			if (currentFrame == totalFrames)
			{
				stop();
				loadingFinished();
			}
		}
 
		private function loadingFinished():void
		{
			removeEventListener(Event.ENTER_FRAME, checkFrame);
			loaderInfo.removeEventListener(ProgressEvent.PROGRESS, progress);
			loaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, ioError);
 
			removeChild(_progressField);
			_progressField = null;
 
			startup();
		}
 
		private function startup():void
		{
			var mainClass:Class = getDefinitionByName("Main") as Class;
			addChild(new mainClass() as DisplayObject);
		}
 
	}
 
}
Код AS3:
	[Frame(factoryClass="Preloader")]
	public class Main extends Sprite {