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