0

ナビゲーションページ用に登録したメディエーターがあります:

facade.registerMediator(new NavPageMediator(viewComponent));

次のように、別のページでそのメディエーターを取得しようとしています。

var navPageMediator:NavPageMediator = facade.retrieveMediator(NavPageMediator.NAME) as NavPageMediator;

ただし、そのステートメントは を返しますnullNavPageMediator(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ました(2番目のドメインにハッシュがなかった理由はまだわかりません。そうすれば、物事が少し明確になります)。

于 2010-07-15T21:07:03.803 に答える