
Код 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 и ничего не показывает...