swfをロードするAIRプロジェクトがあります。しかし、ロードされたswfがSecurityErrorを送出すると、私はこのエラーを処理できません!私のコードは怒鳴るです:Loader.load()でSecurityError#2070および#2000を処理する方法
var loader:Loader = new Loader();
_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, swfComplete);
_loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, swfErrors);
_loader.contentLoaderInfo.addEventListener(Event.INIT, swfInit);
_loader.contentLoaderInfo.addEventListener(Event.OPEN, swfOpen);
_loader.contentLoaderInfo.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatus);
_loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, swfSecurityError);
_loader.contentLoaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, uncaughtErrors);
try {
_loader.load(new URLRequest('path.swf'));
}
catch(e:SecurityError) {
trace("trying handle error!");
}
function swfComplete(e:Event):void {
trace("complete");
}
function swfErrors(e:IOErrorEvent):void {
trace("swf error: " + e.toString());
}
function swfInit(e:Event):void {
trace("swf init");
}
function swfOpen(e:Event):void {
trace("swf open. this listener dispatch!");
}
function httpStatus(e:HTTPStatusEvent):void {
trace("http status: " + e.toString());
}
function swfSecurityError(e:SecurityErrorEvent):void {
trace("trying handle security error. :(");
}
function uncaughtErrorEvent(e:UncaughtErrorEvent):void {
trace("uncaught error: " + e.toString());
}
FlashDevelopのからの例外:
[Fault] exception, information=SecurityError: Error #2070: Security sandbox violation: caller file.swf cannot access Stage owned by app:/myApp.swf.
[Fault] exception, information=SecurityError: Error #2000: No active security context.
問題は、私のプログラムが終了することにあると私はこれらのセキュリティエラーをキャッチすることはできません。私のプログラムが閉鎖されないようにするには?
お返事ありがとうございます。私は解決策としてloadBytesを試しましたが、他のものは私が実際に実行することはできません。私はそれをしましたが、問題があります。私は後で "unloadAndStop"を使用してメモリーからそれらをアンロードする一連のファイルをロードしますが、このコマンドはロードされたファイルからすべてのバイトを削除しません。これはおそらく私の主なswfに埋め込まれているクラスの定義のためです。私のプログラムがメモリ消費とクラッシュを増やすのはどういうことでしょう。これをどうすれば解決できますか? – bio
あなたは何百(または少なくとも数十)メガバイトについて話していますか?一度にすべて読み込んでみることができます。あるいは、ロードされたコンテンツが何を必要としているのかを記述し、それを再プログラムしてステージや環境にアクセスする必要がないようにすることで、それらを定期的にロードしたりアンロードしたりすることができます。 – Organis