Actionscript 3 使用PureMVC作为其适当类强制转换检索到的中介将返回null
我有一个已注册导航页面的调解人:Actionscript 3 使用PureMVC作为其适当类强制转换检索到的中介将返回null,actionscript-3,puremvc,Actionscript 3,Puremvc,我有一个已注册导航页面的调解人: facade.registerMediator(new NavPageMediator(viewComponent)); 我试图在另一个页面上检索该中介,如下所示: var navPageMediator:NavPageMediator = facade.retrieveMediator(NavPageMediator.NAME) as NavPageMediator; 但是,该语句返回null。如果我尝试使用NavPageMediator(facade.r
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(新的NavPageMediator()作为NavPageMediator)代码>返回[对象NavPageMediator]
顺便说一句,这可能是我问题的一部分,我不明白对象末尾的@hash是什么(@237560a1
)。它只是该类实例的内部标识符吗
编辑:
留下一点重要信息:我在其中实例化和注册中介的SWF与我试图检索中介的SWF是分开的。解决了这个问题。这原来是一个应用领域的问题。将两个SWF(注册者和检索者)分配到同一个域解决了这个问题
此外,我非常确定类名末尾的@hash是对该类所属ApplicationDomain的内部引用。所以NavPageMediator@237560a1
与NavPageMediator
位于不同的域中(为什么第二个域上没有哈希,我仍然不确定;这会让事情变得更清楚)