我有两个项目,A并且B,引用一个库,MyExternalLibrary. A并且B是.swfs(两个不同的 AS3 项目)并且MyExternalLibrary是.swc. 当我的应用程序运行时,A加载B.
有一个Class, MyLoader,广泛MyExternalLibrary使用B。 MyExternalLibrary.MyLoader加载.swf我们服务器上存在的 s(我们不嵌入它们,因为它们是根据用户请求动态加载的)。
请注意,我们的服务器包含A,B以及.swf我们要下载的所有 s。
现在,还必须在我们的服务器上A加载一些s。.swf因此,A也必须使用MyLoaderin MyExternalLibrary。因此,在A中,我添加了对 的引用MyLoader,以便在编译期间包含其二进制文件。我只添加了一个引用MyLoader——我实际上并没有实例化或修改它。也就是说,在A's 代码中的某处(B加载之前),我有:
MyLoader;
我(显然)也导入了Class。这确保了MyLoader's 二进制文件将包含在A's.swf中。
只是MyExternalLibary.MyLoader在AbreakB的功能中引用MyLoader-- 所有加载的.swfsB都不会cast与其关联Class,尽管它是 aMovieClip并且具有所有正确的字段。此外,在调试器中,加载MovieClip的 s 表明它们是正确的Class. 例如,如果我加载 a .swf,它将是 a MovieClip; 此外,调试器声明它是 type B.mySwfs.MyClass,但我不能。我相信罪魁祸首是。castB.mySwfs.MyClassApplicationDomain
请注意,注释掉那行代码会使所有内容都B cast正确。
如果有人对正在发生的事情有任何想法,我希望得到一些建议。我认为这个问题处理ApplicationDomain自A 拥有 MyExternalLibrary.MyLoader,并且我正在尝试将castaMovieClip加载A到 aClass中B。当我注释掉对 in 的所有引用MyExternalLibrary.MyLoader时A,B现在拥有 MyExternalLibrary.MyLoader,因此它能够转换为 in 中的类B。这是我的预感!
谢谢,