その適切なクラスとして取得したメディエータをPUREMVCにキャストします。
-
16-09-2020 - |
質問
私はナビゲーションページに登録したメディエータを持っています:
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
)。単にそのクラスインスタンスの内部識別子ですか?
編集: 重要な情報を少し左に残しました:Mediatorをインスタンス化して登録したSWFは、検索しようとしているSWFとは別のものです。
解決
を考え出した。それはアプリケーションドメインの問題であることがわかりました。SWF(登録者とRetriever)の両方を同じドメインに割り当てると問題が解決されました。
さらに、クラス名の最後にある@hashがクラスが属するApplicationDomainへの内部リファレンスです。そのため、NavPageMediator@237560a1
はNavPageMediator
とは異なるドメインにありました(なぜ私はまだわかりませんでした。
所属していません StackOverflow