ライブラリを参照するAとの2 つのプロジェクトがあります。 とは(2 つの異なる AS3 プロジェクト) であり、はです。私のアプリケーションが実行されると、ロードされます。BMyExternalLibraryAB.swfMyExternalLibrary.swcAB
多用する 中には、、、ありClassます。サーバーに存在する をロードします (これらはユーザー要求ごとに動的にロードされるため、埋め込みません)。 MyLoaderMyExternalLibraryBMyExternalLibrary.MyLoader.swf
サーバーには と、ダウンロードするすべての が含まれていることに注意しAてくださいB。.swf
ここで、サーバーにAいくつかの もロードする必要があり.swfます。したがって、inAも使用する必要があります。では、への参照を追加して、そのバイナリがコンパイル中に含まれるようにします。への参照を追加するだけで、実際にインスタンス化または変更することはありません。つまり、のコード (がロードされる前) のどこかに、次のものがあります。MyLoaderMyExternalLibraryAMyLoaderMyLoaderAB
MyLoader;
私は(明らかに)もインポートClassします。これにより、MyLoaderのバイナリが の に含まれることがA保証され.swfます。
を使用してbreakの機能を参照MyExternalLibary.MyLoaderするだけでは、読み込まれるすべての は、関連付けられたであり、すべての適切なフィールドを持っているにもかかわらず、関連する にはなりません。さらに、デバッガーでは、ロードされたs は、それらが正しい. たとえば、 をロードすると、;になります。さらに、デバッガーはそれがタイプであると述べていますが、私はそれをすることはできません。犯人は だと思います。ABMyLoader.swfBcastClassMovieClipMovieClipClass.swfMovieClipB.mySwfs.MyClasscastB.mySwfs.MyClassApplicationDomain
そのコード行をコメントアウトすると、すべてがB cast適切に行われることに注意してください。
何が起こっているのかについて何か知っている人がいれば、アドバイスをいただければ幸いです。この問題はownsApplicationDomain以降を扱っていると思います。inへのすべての参照をコメント アウトすると、が を所有するようになったため、 in のクラスにキャストできます。それが私の勘です!A MyExternalLibrary.MyLoadercastMovieClipAClassBMyExternalLibrary.MyLoaderAB MyExternalLibrary.MyLoaderB
ありがとう、