使用 PureMVC 转换检索到的 Mediator 作为其正确的类返回 null
-
16-09-2020 - |
题
我有一个为导航页面注册的中介:
facade.registerMediator(new NavPageMediator(viewComponent));
我正在尝试在另一个页面上检索该调解器,如下所示:
var navPageMediator:NavPageMediator = facade.retrieveMediator(NavPageMediator.NAME) as NavPageMediator;
但是,该语句返回 null
. 。如果我尝试使用 NavPageMediator(facade.retrieveMediator(NavPageMediator.NAME))
相反,我得到一个
TypeError: Error #1034: Type Coercion failed: cannot convert com.website.mvc.view.page::NavPageMediator@237560a1 to com.website.mvc.view.page.NavPageMediator.`
我一生都无法理解为什么 NavPageMediator@237560a1
将无法转换为 NavPageMediator
, ,也没有在注册调解器和检索它之间发生的事情导致了这种情况。特别是从 trace(new NavPageMediator() as NavPageMediator);
回报 [object NavPageMediator]
.
顺便说一句,这可能是我的问题的一部分,我不明白对象末尾的 @hash 是什么(@237560a1
)。它只是该类实例的内部标识符吗?
编辑:留下一些重要信息:我在其中实例化和注册中介器的 SWF 与我尝试在其中检索中介器的 SWF 是分开的。
解决方案
弄清楚了。事实证明这是一个ApplicationDomain问题。将两个 SWF(注册者和检索者)分配到同一域解决了该问题。
此外,我非常确定类名末尾的 @hash 是对该类所属的 ApplicationDomain 的内部引用。所以 NavPageMediator@237560a1
位于不同的域中 NavPageMediator
(为什么第二个没有哈希,我仍然不确定;这会让事情变得更清楚一些)。
不隶属于 StackOverflow