1

SWFLoader を使用してアプリケーションをロードし、ロードしたアプリケーションを Displaylist に追加しようとしています。

public function onComplete(e:Event):void {
    someContainer.addChild((e.target.content));
}

//somewhere in main
var loader: SWFLoader = new SWFLoader();
loader.addEventListener(Event.COMPLETE, onComplete);
loader.load(urlToSwf);

エラーメッセージが表示されます

cannot convert _Main_mx_managers_SystemManager@c513eb9 to mx.core.IUIComponent 

なぜこれがうまくいかないのか、どうすれば修正できるのか誰か教えてもらえますか?

ありがとう、シムズ

4

3 に答える 3

3

まず、Flex アプリケーションを別の Flex アプリケーションにロードすることはお勧めしません。Flex フレームワークに存在するすぐに使用できるモジュールがあります。詳細については、こちらをご覧ください。

特にあなたのケースについては、ドキュメントを読むaddChild()必要があります:

注: メソッドの子引数は DisplayObject 型として指定されますが、その引数はコンテナーの子として追加される IUIComponent インターフェイスを実装する必要があります。すべての Flex コンポーネントがこのインターフェイスを実装しています。

したがって、UIComponent最初に追加して、そこにシステムマネージャーを追加できます。

于 2011-05-26T10:07:30.490 に答える
0

SWFLoader をコンテナーに追加するだけです。

public function loader_completeHandler(event:Event):void
{
    var loader:SWFLoader = event.target as SWFLoader;
    someContainer.addChild(loader);
}

//somewhere in main
var loader:SWFLoader = new SWFLoader();
loader.addEventListener(Event.COMPLETE, loader_completeHandler);
loader.load(urlToSwf);
于 2011-05-26T11:36:46.070 に答える