1

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

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

最初,我认为这是因为我的模块需要一个 pureMVC 调解器来调用 pureMVC StartupCommand 来“连接”事物,然后创建 RobotLegs 的上下文。但是,这不起作用,我仍然收到错误消息。你知道发生了什么吗?如果是,我怎样才能通过它?

谢谢。

4

2 回答 2

1

好的——所以我到处阅读并试图找出问题所在。在 RobotLegs 的支持讨论中,发布了一个类似的主题。原来,RL 的框架有一个 bug,跟 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 框架附带的那个,现在它运行没有错误......暂时。

谢谢。:)

于 2010-10-19T17:59:27.160 回答
1

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

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

于 2010-10-19T15:54:21.557 回答