もう一度コードがなくても SWF をロードするのに問題がありました。私が見つけた解決策は、コードがアプリケーション領域からのもの (アプリにパッケージ化されている) か、外部から読み込まれたもの (Web から、またはキャッシュ フォルダーにダウンロードされたもの) によって異なります。興味があれば、ここに詳細な記事を書きました: http://www.eqsim.com/blog/?p=400
簡単に言うと、パスを設定するための私のコードは次のとおりです。
var moduleDirectoryPath = "/modules/";
if (externalContent == FROM_CACHE) {
moduleDirectoryPath = File.cacheDirectory.url + moduleDirectoryPath;
} else if (externalContent == FROM_WEB) {
moduleDirectoryPath = "http://our-online-content.com" + moduleDirectoryPath;
}
次に、SWFがアプリ領域またはそれ以外(キャッシュまたはWeb)からのものである場合、パスを準備するための私のコードは次のとおりです。
if (loadFromApp) {
path = moduleDirectoryPath + module_folder + "/" + module + "?nf="+getTimer();
} else {
path = moduleDirectoryPath + module_folder + "/" + module;
}
最後に、私の読み込みステートメント:
request = new URLRequest(path);
request.cacheResponse = false;
request.useCache = false;
_lc = new LoaderContext(false, ApplicationDomain.currentDomain, null);
moduleLoader.load(request, _lc);
これで、SWF を読み込んで再読み込みできるようになりました (さらに重要なこと)。もちろん、SWF にはバイトコードが含まれていません。