Flashコンテンツを更新する際、XMLなど外部ファイルにデータを持たせて、それを更新するようなパターンがあります。メリットとしては、Flashアプリケーションを触らなくても更新でき、CMSとの連携もとれたりして非常に便利ではありますが、ActionScriptが複雑になり、Flashコンテンツの制作時間が長くなってしまうデメリットもあります。

XMLを更新したはずなのに、Flashの中身が変更されていない。という時がありました。ほとんどの場合ブラウザがキャッシュしているXMLが残ったまま、更新されたXMLを読みに行かないというのが原因です。のです。確認するときにブラウザのキャッシュを消せばいいのですが、お客さまにわざわざキャッシュを消させるわけにはいきません。^-^;

そこで今回は、ActionScriptでXMLのキャッシュを残さない方法を紹介します。残さないというより、FlashがXMLをロードする時に常に違うファイルとしてブラウザに認識させる方法。という言い方のほうが正しいです。

ActionScript
1
2
var myXML:XML = new XML();
myXML.load("hoge.xml"+"?noCache="+new Date().getTime());

XMLファイルにアクセスするパスに、?引数で現在の時間を付け足しています。サーバーへのアクセスは、[hoge.xml?noCache=1254463831798]こんな感じになり、ブラウザは1秒前とは違うファイルと認識して新たにXMLを取得、キャッシュを見に行くことはなくなるということです。特にXMLファイルの中身を書き消したりすることはありませんのでご安心を。
コンテンツが更新されない!とパニックを起こされる前に事前に対策しておいたほうがいいですねー!