Загружаемую swf не могу менять, они могут быть разные.
По архитектуре флеша stage в загружаемой флешки будет равен stage флешки которая грузит, просто надо открыть доступ.
загружаемые флешки на 100% без ошибок.
так я загружаю
Код AS3:
package
{
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.ProgressEvent;
import flash.net.URLRequest;
import flash.net.URLStream;
import flash.system.ApplicationDomain;
import flash.system.LoaderContext;
import flash.system.Security;
import flash.text.TextField;
import flash.utils.ByteArray;
public class LoaderGame extends Sprite
{
private var byteLoader:URLStream= new URLStream();
private var loader:Loader = new Loader();
private var file:ByteArray = new ByteArray;
private var key:Array = new Array;
private var text_progress:TextField = new TextField;
public function LoaderGame()
{
Security.allowDomain("*");
Security.allowInsecureDomain("*");
this.addEventListener(Event.ADDED_TO_STAGE,init);
}
private function init(e:Event):void
{
var url:URLRequest = new URLRequest("Engineer.swf");
byteLoader.load(url);
byteLoader.addEventListener(Event.COMPLETE,onByteComplete);
this.addChild(text_progress);
byteLoader.addEventListener(ProgressEvent.PROGRESS,onProgress);
}
private function onProgress(e:ProgressEvent):void
{
text_progress.text=e.bytesLoaded.toString()+"/"+e.bytesTotal.toString()+"\n"+int((e.bytesLoaded/e.bytesTotal*100)).toString();
}
private function onByteComplete(e:Event):void
{
file=расшифрованный байт код;
var loaderContex:LoaderContext = new LoaderContext();
loaderContex.applicationDomain=здесь надо что-то хитрое вписать.
loader.loadBytes(file,loaderContex);
this.addChild(loader);
this.removeChild(text_progress);
}
}
}
Добавлено через 14 минут
Оказалась что к stage нельзя получить доступ
[Frame(factoryClass="MyClass")]
из MyClass -странно.