Je travaille avec l'application AIR qui charge le fichier SWF chiffré à partir du disque dur et décrypte ce swf. Après cela, j'ai byteArray de swf décrypté et je veux le charger dans Loader ou SWFLoader.Comment charger le fichier SWF depuis byteArray?
private var file_byte:ByteArray;
private var myFileStream:FileStream;
private static var inputFile:File;
private var loader:Loader;
private function loadSWF(url:String):void
{
inputFile = new File(url);
myFileStream = new FileStream();
myFileStream.addEventListener(Event.COMPLETE, completed);
myFileStream.openAsync(inputFile, FileMode.READ);
file_byte = new ByteArray();
}
private function completed(event:Event):void
{
myFileStream.readBytes(file_byte, 0, myFileStream.bytesAvailable);
//Decrypting file
file_byte = decrypt(file_byte);
// Prepare the loader context to avoid security error
var loaderContext:LoaderContext = new LoaderContext();
loaderContext.allowLoadBytesCodeExecution = true;
loaderContext.allowCodeImport = true;
// Load the SWF file
loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onChildComplete);
loader.loadBytes(file_byte,loaderContext);
}
private function onChildComplete(e : Event) : void
{
this.addChild(loader);
}
Erreur de sécurité:
Error #3207: Application-sandbox content cannot access this feature.
at flash.system::Security$/allowDomain()
at rfx::MainTimeline_cbc00d6d7b3a063d505c336e0c8f32a1()[constructor.as:0]
byteArray
est correct, je l'ai écrit dans le fichier dans le disque et il a travaillé dans le puits Flash Player. J'ai lu beaucoup de bac à sable, allowLoadBytesCodeExecution
, fichiers SWF externes dans AIR, mais je ne peux pas résoudre ce problème!
Comment charger le fichier swf de byteArray?