Показать сообщение отдельно
Старый 27.09.2011, 12:58
pas.delger вне форума Посмотреть профиль Отправить личное сообщение для pas.delger Найти все сообщения от pas.delger
  № 3  
Ответить с цитированием
pas.delger
 
Аватар для pas.delger

блогер
Регистрация: Mar 2010
Сообщений: 108
Записей в блоге: 1
нет, не наблюдал. я кое с чем разобрался, со всем вылетело из головы, что я создавал не проект с прелоудером а обычный AS3 проект. исправил, теперь у меня класс main и preloader.as. Main совершенно обычный, ни чем не выдающийся:

Код AS3:
 
[Frame(factoryClass="Preloader")]
	public class Main extends MovieClip {
		public static var instance:Main;
 
		public function Main():void {
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
 
		private function init(e:Event = null):void {
			removeEventListener(Event.ADDED_TO_STAGE, init);
			instance = this;
			GameInitializer.init();
		}
 
	}
а вся прорисовка теперь в классе Preloader:

Код AS3:
 
		public function Preloader() {
			if (stage) {
				stage.scaleMode = StageScaleMode.NO_SCALE;
				stage.align = StageAlign.TOP_LEFT;
			}
 
			loader.load(new URLRequest(Settings.host+"Preloader1.swf"));
			loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onPreloaderLoaded);
		}
 
		private function onPreloaderLoaded(e:Event):void {
			preloader = e.currentTarget.content;
			addChild(preloader);
			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 {
			preloader.count = stage.loaderInfo.bytesLoaded/stage.loaderInfo.bytesTotal*100;
		}
 
		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(preloader);
 
			startup();
		}
 
		private function startup():void {
			var mainClass:Class = getDefinitionByName("Main") as Class;
			addChild(new mainClass() as DisplayObject);
		}
Но сейчас, почему-то, когда запускаю с компа все ок, а если загрузить с сервака - черный экран и вообще в итоге игра не открывается. Раньше был белый, и хотя-бы одним куском все проирсовывалось - сейчас не прорисовывается вообще.