You get Error #2070 when a loaded swf in another directory tries to access the stage.
I couldn't get around it by using Security.allowDomain("*") either, because it was an AIR application.
So, to get around this problem I decided instead of directly loading the file using Loader.load() I'd load it by loading the file into a byteArray and useing Loader.loadBytes() instead. and guess what? it works.
It completely gets around the sandbox issue.
Have some code:
private function loadSwfFromUrl(url:String):void{
var context:LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain);
var ldr:Loader = new Loader();
var swf:ByteArray = new ByteArray();
var fs:FileStream = new FileStream();
fs.open(new File(url), FileMode.READ);
fs.readBytes(swf);
fs.close();
context.allowCodeImport = true;
ldr.loadBytes(swf,context);
stage.addChild(ldr);
}
There's probably a better, simpler way to get around this sandbox issue, but at least this works.
No comments:
Post a Comment