有没有人了解何时在mx.modules.Module上使用mx.modules.ModuleBase?我所看到的文档并不十分清楚每个文档的设计目的。它们与“框架交互”的含义是什么?它只是归结为视觉组件与非视觉组件吗?显然,不与“框架”交互的BaseModule不会非常有用,因此任何实际的BaseModule子类都可能以某种身份与框架交互。我的猜测是,Adobe提供了ModuleBase,以便开发人员可以从最少量的代码扩展到在运行时将某些内容加载到vm中。有任何想法吗?感谢
Flex开发人员指南第99页
扩展Module类是一样的 使用标签 MXML文件。你应该扩展它 如果您的模块与之交互,则为class 框架;这通常意味着 它将对象添加到显示器 列表或以其他方式与之交互 可见对象。
......他们继续说
如果您的模块不包含任何模块 框架代码,您可以创建一个类 它扩展了ModuleBase。如果你使用 ModuleBase类,你的模块会 通常比你使用的小 模块基于Module类 因为它没有任何框架 类依赖。
非常酷,谢谢大家。是的,我也读过这些评论。由于我在过去几个月里使用过Flex模块,我相信我原来的解释非常接近“...... Adobe提供了ModuleBase,以便开发人员可以从最少量的代码扩展到在运行时将某些内容加载到vm中“。我觉得医生的解释过于笼统。例如,我有几个“与框架交互”的ModuleBase类。它们本身不是可视组件 - 但是利用各种框架类来在我的应用程序中实现一种服务角色。我认为对ModuleBase的更准确的描述就是说“如果你的模块不是DisplayObject,那么从ModuleBase扩展”。
答案 0 :(得分:0)
ModuleBase适用于非Flex模块。
模块适用于基于Flex的模块。如果您在模块中使用任何flex组件,那么这适合您。或者如果您打算在flex应用程序中使用该模块,您可能也想要这个。
答案 1 :(得分:0)
根据ModuleBase.as文件中的注释:
基于ActionScript的动态可加载模块的基类。如果编写仅限ActionScript的模块,则应扩展此类。如果使用MXML文件中的
<mx:Module>
标记编写基于MXML的模块,则可以扩展Module类。
...并在Module.as中:
如果您的模块不包含任何框架代码,则可以创建一个扩展ModuleBase类的类。如果使用ModuleBase类,则模块通常比创建基于Module类的模块小,因为它没有任何框架类依赖项。
基本上,如果您正在编写MXML组件,或者您正在使用Flex框架类,那么您应该使用Module类。否则,ModuleBase更合适。