Приветствую форумчане!
В as3(да и вообще в флеше) я почти полный 0 - никогда не приходилось с ней работать. Сейчас возникла необходимость для небольшого личного проектика создать обертку для подгрузки в нее вешнего swf файла.
Проблема в следующем - когда я подгружаю этот самый внешний файл он почемто растягиается далеко за видимую область - как итог я вижу на сцене не всю флеш, а только ее евый верхний угол. При этом я уже дня 3 бьюсь над тем как изменить размер этой самой флешки, но ничего не получается. Пробовал создать контейнер типа movieclip и грузить swf туда, а в клипе установить scale, но не помогает, так как подгружаемый файл сам по себе тоже лоадер и он грузит все обьекты непосредственно на сцену.
При этом он использует компонент scene для нахождения размеров сцены, но сколько я не писал и не убирал Sequriity.AllowDomain(*) - никаких ошибок флеш не выдает - т.е. то ли он обращается не к той какой то сцене(!?) хотя, насколько я понимаю, она 1 для всех - ведь это то, что указано в html, то ли он к ней не может по каким то причинам обратиться, а ошибок не выдает.
Собственно ваопрос в том - как заставить его грузиться в нормальном размере?
Ниже приведу код своего лоадера и декомпилированные куски того, как и куда добавляется подгружаемый swf:
Мой loader:

Код AS3:
package
{
import com.demonsters.debugger.MonsterDebugger;
import flash.display.*;
import flash.display.Sprite;
import flash.events.*;
import flash.net.*;
import flash.system.*;
import flash.text.TextField;
public class Connector extends Sprite
{
private var button:Sprite = new Sprite();
public var loader:Loader;
public var container:MovieClip;
public var request:URLRequest;
public var Disp:DisplayObjectContainer;
public var Mov:MovieClip;
public var config:XML;
public function ButtonInteractivity() {
drawButton()
button.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
addChild(button);
}
private function drawButton():void {
var textLabel:TextField = new TextField()
button.graphics.clear();
button.graphics.beginFill(0xD4D4D4); // grey color
button.graphics.drawRoundRect(0, 0, 80, 25, 10, 10); // x, y, width, height, ellipseW, ellipseH
button.graphics.endFill();
textLabel.text = "Click Me!";
textLabel.x = 10;
textLabel.y = 5;
textLabel.selectable = false;
button.addChild(textLabel)
}
private function mouseDownHandler(event:MouseEvent):void {
height = 100;
width = 100;
addChild(loader);
}
public function Connector()
{
if(stage != null) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
public var contentheight:int;
public var contentwidth:int;
private function init(e:Event = null):void {
removeEventListener(Event.ADDED_TO_STAGE, init);
ButtonInteractivity();
MonsterDebugger.initialize(this);
MonsterDebugger.trace(this,this.loaderInfo.loaderURL);
stage.addEventListener( Event.ENTER_FRAME, this._onUpdate );
loader = new Loader();
root.scaleX = 0.3;
root.scaleY = 0.3;
request = new URLRequest("/Loading.swf");
loader.load(request);
}
private function _onUpdate( e:Event ):void
{
MonsterDebugger.trace(this,"sc");
//вообще не помогает - кнопка остается уменьшенной, но объекты, добавленные подгруженным лоадером - нет
stage.scaleX = 0.3;
stage.scaleY = 0.3;
}
}
}
Обращение к сцене из init подгружаемой swf

Код AS3:
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.EXACT_FIT;
StageReferance.setup(stage);
класс StageReferance

Код AS3:
package com.pickgliss.toplevel
{
import flash.display.*;
import flash.events.*;
final public class StageReferance extends Object
{
public static var stageHeight:int;
public static var stageWidth:int;
private static var _stage:Stage;
public function StageReferance()
{
return;
}// end function
public static function setup(param1:Stage) : void
{
if (_stage != null)
{
return;
}
_stage = param1;
_stage.addEventListener(Event.EXIT_FRAME, __onNextFrame);
_stage.addEventListener(Event.RESIZE, __onResize);
_stage.stageFocusRect = false;
return;
}// end function
private static function __onNextFrame(event:Event) : void
{
if (_stage.stageWidth > 0)
{
_stage.removeEventListener(Event.EXIT_FRAME, __onNextFrame);
stageWidth = _stage.stageWidth;
stageHeight = _stage.stageHeight;
}
return;
}// end function
private static function __onResize(event:Event) : void
{
stageWidth = _stage.stageWidth;
stageHeight = _stage.stageHeight;
return;
}// end function
public static function get stage() : Stage
{
return _stage;
}// end function
}
}
Буду очень благодарен за помощь! Бьюсь уже 3 дня и ничего пока что не выходит. Спасибо.