在PureMVC Shell应用程序中创建RobotLegs模块

时间:2010-10-19 13:58:33

标签: flex shell puremvc robotlegs

我正在开发一个在PureMVC中构建的现有模块化项目。我想使用RobotLegs创建一个新模块并将其插入pureMVC shell,而不是将所有内容转换为RobotLegs。目前,当模块加载时,我收到以下闪存错误:

ReferenceError:错误#1065:未定义变量IMediatorMap。

最初,我认为这是因为我的模块需要一个pureMVC Mediator来调用pureMVC StartupCommand以使事情“挂钩”,然后创建RobotLegs的Context。但是,这不起作用,我仍然得到错误。你知道发生了什么吗?如果是的话,我怎么能通过它?

感谢。

2 个答案:

答案 0 :(得分:1)

我不相信你的问题与PureMVC或RobotLegs有关。听起来您的RobotLegs模块不包含RobotLegs库,您的主应用程序也不包含。您的模块未链接到RobotLegs .swc中。如果要将RobotLegs .swc添加到主应用程序但从不使用它,则不会将类编译到应用程序中。 mxmlc和Flash / Flex Builder编译器不会将类包含在未使用的SWF中。

要解决此问题,可以使用主应用程序中的-include-libraries选项强制包含整个库。您还可以将模块上的链接选项更改为“合并到代码中”以包含RobotLegs .swc。

答案 1 :(得分:1)

好的 - 所以我在那里读书并试图找出问题所在。在RobotLegs的支持讨论中,发布了类似的主题。事实证明,RL的框架中存在一个错误,与ApplicationDomain有关。在这里阅读:

http://knowledge.robotlegs.org/discussions/problems/160-child-applicationdomains-break-the-injector

那个帖子的解决方案就是使用RL v.1.3.0,我就是这样。但是按照这个想法,我删除了RL的lib /文件夹中SwiftSuspender-1.5.1.swc的库引用,并从GitHub下载了SwiftSuspender。它也是v.1.5.1,但无论出于何种原因,来自GitHub的那个都可以工作。我用从GitHub获得的那个替换了RL框架附带的那个,现在它运行没有错误....现在。

感谢。 :)