2010-10-19 34 views
1

我正在使用PureMVC中構建的現有模塊化項目。與其將所有內容轉換爲RobotLegs,我都想使用RobotLegs創建一個新模塊並將其插入pureMVC外殼。目前,當模塊加載時,我得到了以下閃光錯誤:在PureMVC Shell應用程序內創建RobotLegs模塊

的ReferenceError:錯誤#1065:不定義的變量IMediatorMap。

最初,我認爲這是因爲我的模塊需要一個pureMVC調解器來調用pureMVC StartupCommand來讓事情「連接起來」,然後創建RobotLegs的上下文。但是,這不起作用,我仍然收到錯誤。你有什麼想法發生了什麼,如果是這樣,我怎麼能通過它?

謝謝。

回答

1

我不相信你的問題有什麼關係PureMVC的或Robotlegs的。聽起來您的RobotLegs模塊不包含RobotLegs庫,您的主應用程序也不包含。您的模塊未鏈接到RobotLegs .swc中。如果您將RobotLegs .swc添加到主應用程序,但從不使用它,那麼這些類將不會編譯到應用程序中。 mxmlc和Flash/Flex Builder編譯器不會將類包含到不使用的SWF中。

爲了解決這個問題,您可以強制整個庫通過使用在主應用程序的-include-libraries選項包括在內。您也可以將模塊上的鏈接選項更改爲「合併到代碼」以在其中包含RobotLegs .swc。

+0

哼哼...沒關係。我也可以試試這個。謝謝,喬納森。 – LazerWonder 2010-10-19 18:00:44

+1

這聽起來像你已經找到了上面的正確答案。這聽起來像RobotLegs正在尋找錯誤的ApplicationDomain來獲取它所需的定義。與其他應用程序祝好運! – 2010-10-19 18:34:09

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框架中的那個,現在它運行沒有錯誤....現在。

謝謝。 :)

+0

非常有趣!在該線程之後,似乎RobotLegs具有不正確引用ApplicationDomain的特定代碼。我期望這是正確的答案。 – 2010-10-19 18:33:07

+0

Robotlegs並沒有真正關心ApplicationDomain(沒有辦法提供ApplicationDomain等)。我們爲SwiftSuspenders添加了一些支持以適應模塊化實用程序,但它在更廣泛的模塊化解決方案中留下了很多漏洞。幸運的是,現在越來越多的人正在開發模塊化應用程序。 – 2010-10-19 23:34:08

相關問題