Apache flex 模块库与模块库

Apache flex 模块库与模块库,apache-flex,actionscript,module,Apache Flex,Actionscript,Module,有人知道何时使用mx.modules.ModuleBase而不是mx.modules.Module吗?我看到的文档并不是很清楚每一个都是为什么而设计的。他们所说的“与框架交互”到底是什么意思?它只是归结为可视组件还是非可视组件?显然,不与“框架”交互的BaseModule不会非常有用,因此BaseModule的任何实际子类都可能以某种能力与框架交互。我的猜测是Adobe提供了ModuleBase,这样开发人员就可以从运行时加载到vm所需的最小代码量进行扩展。有什么想法吗?谢谢 Flex开发者指南

有人知道何时使用mx.modules.ModuleBase而不是mx.modules.Module吗?我看到的文档并不是很清楚每一个都是为什么而设计的。他们所说的“与框架交互”到底是什么意思?它只是归结为可视组件还是非可视组件?显然,不与“框架”交互的BaseModule不会非常有用,因此BaseModule的任何实际子类都可能以某种能力与框架交互。我的猜测是Adobe提供了ModuleBase,这样开发人员就可以从运行时加载到vm所需的最小代码量进行扩展。有什么想法吗?谢谢

Flex开发者指南第990页

扩展模块类也是一样的 在 MXML文件。你应该扩展这个 如果模块与交互,则初始化 框架;这通常意味着 它会将对象添加到显示中 列出或以其他方式与 可见对象

。。。他们接着说

如果您的模块不包含任何 框架代码,可以创建一个类 这扩展了ModuleBase。如果你使用 在ModuleBase类中,您的模块将 通常比使用 基于模块类的模块 因为它没有任何框架 类依赖关系



很酷,谢谢大家。是的,我也读过这些评论。在过去的几个月里,我一直在使用Flex模块,我相信我最初的解释相当接近“……Adobe提供了ModuleBase,这样开发者就可以从运行时加载到vm中所需的最少代码中进行扩展。”不过,我觉得文档的解释太笼统了。例如,我有几个ModuleBase类“与框架交互”。它们本身不是可视组件,而是利用各种框架类在我的应用程序中实现某种服务角色。我认为对ModuleBase更准确的描述应该是“如果您的模块不是DisplayObject,那么就从ModuleBase进行扩展”。

ModuleBase用于非flex模块


模块用于基于flex的模块。如果您在模块内使用任何flex组件,这是为您准备的。或者,如果您打算在flex应用程序中使用该模块,您可能也需要它。

根据ModuleBase.as文件中的注释:

基于ActionScript的可动态加载模块的基类。如果只编写ActionScript模块,则应扩展此类。如果使用MXML文件中的
标记编写基于MXML的模块,则可以扩展模块类

。。。在Module.as中:

如果模块不包含任何框架代码,则可以创建扩展ModuleBase类的类。如果使用ModuleBase类,您的模块通常会比创建基于该模块类的模块小,因为它没有任何框架类依赖关系

因此,基本上,如果您正在编写MXML组件,或者如果您正在使用flex框架类,那么您应该使用模块类。否则,ModuleBase更合适