Показать сообщение отдельно
Старый 16.09.2011, 18:24
Dimitry_II вне форума Посмотреть профиль Отправить личное сообщение для Dimitry_II Найти все сообщения от Dimitry_II
  № 2  
Ответить с цитированием
Dimitry_II

Регистрация: Jan 2010
Сообщений: 211
Во-первых, указываем в Application
Код AS3:
<mx:Application ... preloader="CustomPreloader">
А потом сам CustomPreloader:
Код AS3:
package {
	import flash.display.*;
	import flash.events.*;
	import flash.net.URLRequest;
 
	import mx.events.FlexEvent;
	import mx.preloaders.DownloadProgressBar;
	import mx.preloaders.IPreloaderDisplay;
 
	public class CustomPreloader extends DownloadProgressBar implements IPreloaderDisplay {
		private var imageControl:Loader;
 
		public function CustomPreloader() {
			super();
		}
		override public function set preloader(preloader:Sprite):void {
			preloader.addEventListener(ProgressEvent.PROGRESS, handleProgress);
			preloader.addEventListener(Event.COMPLETE, handleComplete);
			preloader.addEventListener(FlexEvent.INIT_PROGRESS, handleInitProgress);
			preloader.addEventListener(FlexEvent.INIT_COMPLETE, handleInitComplete);
		}
		override public function initialize():void {	
			imageControl = new Loader();
			imageControl.contentLoaderInfo.addEventListener(Event.COMPLETE, loaderCompleteHandler);
			imageControl.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, handleIOError);
			imageControl.load(new URLRequest("assets/SomeSkin.swf"));
		}
		private function loaderCompleteHandler(event:Event):void {	
			imageControl.content["qqq"].scaleX = 0;//ползунок
			addChild(imageControl);
			this.x = this.stage.stageWidth/2 - imageControl.contentLoaderInfo.width/2;
			this.y = this.stage.stageHeight/2 - imageControl.contentLoaderInfo.height/2;
		}
		private function handleProgress(event:ProgressEvent):void {
			var perc:Number = event.bytesLoaded / event.bytesTotal;
			if (imageControl.content) {
				imageControl.content["qqq"].scaleX = perc;
				imageControl.content["perc"].text = perc * 100;//строка с цифрами
			}
		}
		private function handleComplete(event:Event):void{
		}
		private function handleInitProgress(event:Event):void {
		}
		private function handleInitComplete(event:Event):void {
			dispatchEvent(new Event(Event.COMPLETE));
		}
		private function handleIOError(event:IOErrorEvent):void {
		}
	}
}
Может где чего не так, но думаю, суть ясна.