0

我有一个已为导航页面注册的调解员:

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 是分开的。

4

1 回答 1

0

弄清楚了。原来是ApplicationDomain问题。将两个 SWF(注册人和检索人)分配到同一个域解决了这个问题。

此外,我很确定类名末尾的 @hash 是对该类所属的 ApplicationDomain 的内部引用。所以NavPageMediator@237560a1在不同的域中NavPageMediator(为什么我仍然不确定第二个域没有散列;那会让事情变得更清楚一些)。

于 2010-07-15T21:07:03.803 回答