使用PureMVC将检索到的Mediator转换为正确的类将返回null

时间:2010-07-15 17:17:59

标签: actionscript-3 puremvc

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

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

1 个答案:

答案 0 :(得分:0)

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

此外,我非常确定类名末尾的@hash是对该类所属的ApplicationDomain的内部引用。所以NavPageMediator@237560a1NavPageMediator处于不同的域中(为什么第二个没有哈希,我仍然不确定;这会让事情变得更加清晰)。