我有一个我已注册导航页面的调解员:
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是分开的。
答案 0 :(得分:0)
想出来。它原来是一个ApplicationDomain问题。将两个SWF(注册人和检索者)分配到同一个域解决了这个问题。
此外,我非常确定类名末尾的@hash是对该类所属的ApplicationDomain的内部引用。所以NavPageMediator@237560a1
与NavPageMediator
处于不同的域中(为什么第二个没有哈希,我仍然不确定;这会让事情变得更加清晰)。