Показать сообщение отдельно
Старый 19.10.2009, 16:09
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 1  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
По умолчанию Причины по которым Loader не может отобразить загруженное

Код AS3:
package 
{
	import flash.display.Loader;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.ProgressEvent;
	import flash.net.URLRequest;
 
	/**
	 * ...
	 * @author FluFme
	 */
	public class Main extends Sprite 
	{
		private var request:URLRequest = new URLRequest("myswf.swf");
		private var loader:Loader = new Loader();
		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);
			// entry point
			loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loadProgress);
			loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
			loader.load(request);
			addChild(loader);
 
		}
 
		private function loadProgress(event:ProgressEvent):void 
		{
		}
		private function loadComplete(event:Event):void 
		{ trace("COMPLETE");}
 
	}
 
}
Базовый класс, внешний прелоадер. Кладём myswf.swf, загружаем, все отлично, загружает.
Но в проекте одном, которому понадобилось вдруг добавить внешний прелоадер начало происходить нечто странное. Ничего на сцене не появлялось, хуже того, logs разрывалась на части от сообщения COMPLETE (спамилась туда с чудовищной скоростью). Даже отписавшись от события loadComplete в обработчике сообщения шли туда с дикой скоростью и вся флешка тормозила (окно таскалось очень тяжело).
Проблему пока локализовать не удалось, выложить swf`ку проблемную as is тоже пока не могу. Пока интересует вопрос - может, кто сталкивался и с чем это может быть связано? Компилирую Flex SDK4.

Добавлено через 17 минут
Локализовал, впал в ступор.
Код AS3:
package 
{
 
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.system.Security;
	/**
	 * ...
	 * @author FluFme
	 */
	public class Main extends Sprite 
	{	
		public function Main() 
		{
			Security.allowDomain("*");
			trace("My constructor!");
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
 
 
		private function init(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
 
			var gg:Sprite = new Sprite();
			gg.graphics.beginFill(0,1);
			gg.graphics.drawRect(0, 0, 300, 300);
			addChild(gg);	
	}
 
}
Отлично компилируется, но при попытке загрузить его к себе в другую свфку - спамит в консоль сообщениями COMPLETE и ничего не показывает...