Progression4のCrossDomain処理とか

クロスドメイン環境でProgression4を使う際は数カ所でクロスドメインに対応する必要があります。一般的なケースでは無いけど、webサービスとかにProgressionをインクルードした場合に必要になるかと思うのでメモ。

例えば下記の様なサイト構造
crossdomain.png
http://tmp1/index.htmlがhttp://tmp2にあるProgressionファイル一式(preloader.swfとかindex.swf)を読み込んで表示する場合、こんな感じでクロスドメイン処理をします。

step1. index.swfでtmp1をSecurity.allowDomain()で許可(*1)
step2. tmp2サーバー上にcrossdomain.xmlを設置、tmp1を許可

どうしてまた二カ所で指定するのかと言うと、
phase1. index.htmlがpreloader.swfを読み込む
phase2. preloader.swfがindex.swfを読み込む
phase3. index.swfがindex.htmlを読み込む

という読み込みシーケンスをProgression4では行うので

phase2. Security.allowDomain()でtmp1の許可が必要
phase3. crossdomain.xmlでtmp1を許可の許可が必要

となります。

このphase3.でindex.swfがindex.htrmlを読み込むのはProgression4から搭載されたWebDataHolderの動作によるものです。WebDataHolderはProgressionのシーン構造をindex.htmlが構築してやるぜ!という野心的なClassですがこれについてはそのうち詳しく説明するかもです。

ちなみにここで紹介したのはFlashPlayer10を対象にしてるので、今後のバージョンアップでCrossDomainのポリシーが変更された場合は、異なる処理が必要になるかもしれません。

とりあえずサンプルファイル(*2)

*1 Security.allowDomain()はIndexクラス(Index.asファイル)のコンストラクタで実行します。
*2 実際の動作を確認するためにはtmp1,tmp2をネットワーク上に配置する必要があります。

Trackback

http://memo.kappa-lab.com/mt-tb.cgi/309

Leave your comment :

(いままで、ここでコメントしたことがないときは、コメントを表示する前に承認が必要になることがあります。そのときはしばらくお待ちください。)




RSS + Contuct

  • rss
  • email

Credit

Copyright (C) 2007 kappa-lab.com.
All Rights Reserved.