私は、ネットから取り込まれたswf上でメソッドをロード、実行、およびアクセスする必要があるAIRアプリケーションに取り組んでいます。 modualsを使用することは過去にはうまくいきましたが、設計上の制約のためにこのアプリケーションでは不可能です。下のコードを見ると、ImageTest.swfをロードしてからBleh()関数を呼び出します。Flex 3は、サーバーからロードするときにSystemManagerをSystemManagerに変換できません。
private var l:Loader = new Loader();
private var ctx:LoaderContext;
private function onInit():void
{
l.contentLoaderInfo.addEventListener(Event.COMPLETE,onLoadComplete);
l.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,onLoadError);
l.load(new URLRequest("ImageTest.swf"));
}
private function onLoadError(event:IOErrorEvent):void
{
}
private function onLoadComplete(event:Event):void
{
ui.addChild(event.target.content);
SystemManager(event.target.content).addEventListener(FlexEvent.APPLICATION_COMPLETE, swfAppComplete);
}
private function swfAppComplete(event:FlexEvent):void
{
var sys:SystemManager = SystemManager(event.currentTarget);
var app:Object = sys.application;
app.Bleh();
}
swfファイルは、AIRアプリケーションにローカルですが、ImageTest.swfがサーバー上にオフになっているとき、それは罰金ロードが、私は強制実行時エラー(例外TypeError取得するときにこれが正常に動作します:エラー#1034:タイプ強制は失敗しました:mx.managers.SystemManagerに7c36281 @ _Engine_mx_managers_SystemManagerを変換することはできません)ラインで:
SystemManager(event.target.content).addEventListener(FlexEvent.APPLICATION_COMPLETE, swfAppComplete);
私は、エラーがセキュリティサンドボックスの問題に関連するかもしれないと考えているが、私はわかりません。前もって感謝します!