我有一个为导航页面注册的中介:

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 (为什么第二个没有哈希,我仍然不确定;这会让事情变得更清楚一些)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top