Вечер добрэ.
Вот так, у меня выглядит внешний прелоадер:
Первый кадр:

Код AS3:
import flash.events.*;
import flash.system.Security;
import flash.system.LoaderContext;
var ldr:Loader = new Loader();
var url:String = loaderInfo.parameters.path;
Security.allowDomain("*");
Security.loadPolicyFile("crossdomain.xml");
var ldrContext:LoaderContext = new LoaderContext(true);
if(url!=null) {
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE,swf_loaded);
ldr.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, swf_error);
ldr.load(new URLRequest(url),ldrContext);
}
function swf_error(e:Event):void {
removeEventListener(Event.COMPLETE,swf_loaded);
}
function swf_loaded(e:Event):void {
nextFrame();
}
stop();
Второй кадр:

Код AS3:
ldr.x = (stage.stageWidth - ldr.width)/2;
ldr.y = (stage.stageHeight - ldr.height)/2;
addChild(ldr);
До недавнего времени всё было хорошо. Но сегодня я заметил, что загружаемые Flash'ки, неправильно позиционируются в окне. Стал копать код. В итоге выяснил следующее. Во втором кадре, мы выясняем ширину и высоту объекта
ldr. Вот здесь то и кроется ошибка. Ради эксперимента, создал flash'ку с размером рабочего окна в 550x450 пикселов и поместил на его сцену закрашенный прямоугольник в 150x150 пикселов. Далее загрузил эту flash'ку в свой прелоадер и глянул какое значение ширины и высоты, возвращает объект ldr. И выяснилось, что он показывает не 550x450 пикселов, а 150x150 пикселов. То есть он, берет значение ширины и высоты не рабочей области загруженной flask'ки, а размер находящегося в нём закрашенного прямоугольника.
Вопрос. Как узнать точную ширину и высоту загруженного объекта(его рабочей области)?