トップ | 2007/12 | FLASH LABO | 別ドメイン参照がバグる

別ドメイン参照がバグる

■FLASH LABOスクリプト

別ファイルのJPGを読み込んで表示するフラッシュを作ったとして、フラッシュの置いてあるドメインと、読み込むJPGのドメインが、別々の場所だったとき、JPGは表示されません。それを解決するのがクロスドメインXML。フラッシュで別ドメインの画像を参照する際には、参照先のドメインの中にcrossdomain.xmlというファイルを置かないと読み込むことができないんですねー。

そこまではわかってたんですが…今日はクロスドメイン置いても動かないよー(゚回゚)という事態に陥りました。原因はcrossdomain.xmlを置いてもdraw()を使っているスクリプトが動作しない…というバグ。ばぐー(゚皿゚)。

ググってたらFlash Player9での実行ならOKな解決法があるようで、とりあえず解決。下のスクリプトを入れることで解決するそうです。


_domain = "www.********.jp"
System.security.loadPolicyFile(_domain+"/crossdomain.xml")

クロスドメインの作り方は以下の通り。

ファイル名
crossdomain.xml

中身は以下の通り。


<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<!-- Policy file for http://localhost/ -->
<cross-domain-policy>
<allow-access-from domain="*" secure="false"/>
</cross-domain-policy>

このファイルをドメインのルート階層にほおりこんどけば、そのドメインは外部のフラッシュでも読んでいいよとい合図になるようです。