flex / air如何加载另一个模块上的类

时间:2010-09-06 16:10:32

标签: flex api air module classloader

我正在尝试构建我的flex模块化应用程序,并获得以下方案

门户网站(包括2个模块:)    -Mod1(.swf)    -Mod2(.swf)

另外,我有Mod1-API(.swc)

Mod1-API定义了在Mod1(.swf)上实现的接口。 Mod1和Mod2 swfs都导入Mod1-API swc。

我试图在Mod2上调用API方法。在Mod2上我是界面,因为它是通过Mod1-API项目共享的。

我想要实现的是使用getDefinitionByName方法通过反射在Mod2上加载实际的实现类,但它表示未定义。

那么,有没有办法实现它?

我的意思是,如何从mod2加载一个Mod1项目中的类,只返回到mod2的接口,这样它就像普通的API方法一样调用方法?

1 个答案:

答案 0 :(得分:1)

这取决于您加载类定义的位置。 Flex使用安全域和应用程序域来划分已加载的代码。

如果您希望模块2访问通过模块1加载的代码,则需要将它们加载到相同的安全和应用程序域中。

This应该给你一个良好的开端。