その適切なクラスとして取得したメディエータをPUREMVCにキャストします。

StackOverflow https://stackoverflow.com/questions/3258156

  •  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@237560a1NavPageMediatorに変換できないのか、そしてメディエータを登録し、それを取得したことを検索するのかを理解することはできません。特にtrace(new NavPageMediator() as NavPageMediator);[object NavPageMediator]を返します。

偶然には、私の問題の一部であるかもしれません、私はオブジェクトの最後にある@hashが何であるかを理解していません(@237560a1)。単にそのクラスインスタンスの内部識別子ですか?

編集: 重要な情報を少し左に残しました:Mediatorをインスタンス化して登録したSWFは、検索しようとしているSWFとは別のものです。

役に立ちましたか?

解決

を考え出した。それはアプリケーションドメインの問題であることがわかりました。SWF(登録者とRetriever)の両方を同じドメインに割り当てると問題が解決されました。

さらに、クラス名の最後にある@hashがクラスが属するApplicationDomainへの内部リファレンスです。そのため、NavPageMediator@237560a1NavPageMediatorとは異なるドメインにありました(なぜ私はまだわかりませんでした。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top