[AS]XMLを更新したのにswfに反映されない場合(キャッシュ対策)
Xmlを読み込む際には、URLにユニークな変数を追加して、かならず再読み込みをさせたほうがいいみたい。
基本のURLのままだと、変更しても再読み込みの際、キャッシュから読んで新たに読み込んでくれない。
URL(String)にユニークな変数を追加する関数
import flash.net.LocalConnection;
//基本のURL
var xml_str:String = "http://hoge.com/hoge.xml";
//基本のURLにユニークな変数を追加
xml_str = setNoCashURL(xml_str);
private function setNoCashURL(url_str):String {
//サーバーにあがってるか同かを調べるため
var lc:LocalConnection = new LocalConnection();
//現在のドメイン名を取得
var domain_str:String = lc.domain;
//ドメイン名がlocalhostの時はローカルでのテストなので変数はつけない。
//(変数がついてるとローカルではxmlが読みこまれないみたい)
if (domain_str != "localhost") {
//現在時刻を取得することでユニークな数値を取得
var noCash:Number = new Date().getTime();
//URLに追加できる形にして数値を文字列化
var noCash_str:String = "?nocash="+String(noCash);
} else {
noCash_str = "";
}
url_str += noCash_str;
//変数を追加した文字列を返す
return url_str;
}
Tweet