Sleipnir のブラウザキャッシュで外部読み込みしている Flash が表示出来なくなる

ちょっとはまったのでメモ。IE,Firefox,Safari では問題なかったので Windows で IE コンポーネントブラウザで起こる問題の可能性アリ。

問題

Flashで外部ファイルをactionscriptから相対パスで読み込んでいるとリロード後に外部ファイルが読み込めなくなる。

原因

ブラウザキャッシュ周りの問題で、Sleipnirでswfをキャッシュすると、本来ならswfからのパスで外部ファイルを読み込みして欲しいところで、swfを表示しているhtmlファイルからのパスで外部ファイルを読み込もうとしてしまう。

IE,Firefox,Safari などのオリジナルで描画エンジン使っているブラウザはswfをキャッシュしても、swfからのパスで読み込んでくれるので問題にはならない。

対策

1, actionscript側で外部ファイルを読み込む時に"http://"から始まるURLで読み込ませる
問題: 作業環境と本番環境でパスを書き換える必要があるので面倒

2, actionscript+javascript側で毎回違うファイルだとブラウザに認識させる
問題: すべてのブラウザでswfのキャッシュが有効にならない

何が良い解決方法なのかわからないので正直誰かFlashの偉い人に教えてもらいたい。