Flashで、loadVariablesを使用してcgiなどから値を受け取る処理をした場合に、IEのキャッシュが効いて毎回同じ結果を得てしまう場合があります。
おかげでドップリはまりましたが・・・。
それの回避方法です。
コチラを参考にしました。
CGIやローカルファイルへのアドレス(パス)毎回同じためにキャッシュが効いているようなので、例えば、「http://hoge.com/hoge.cgi?DUMMY=<乱数>」として同じアドレスにならないようすればOKです。
が、こちらの解説だと乱数を使用して同じアドレスにならないようにしているので、いつかは同じ値になってしまう場合があります。
更新頻度が多ければなおさらです。
ちなみに、↑の<乱数>を0と1を交互に繰り返すとNGです。
なので、実際には下記のようにします。
Dateオブジェクトの、「getTime」を使用して、1970/1/1からの経過時間をミリ秒で取得して使用しています。
こうすれば、サーバーの時計が戻らない限り同じ値になる心配はありません。
<Category : Flash>
おかげでドップリはまりましたが・・・。
それの回避方法です。
コチラを参考にしました。
CGIやローカルファイルへのアドレス(パス)毎回同じためにキャッシュが効いているようなので、例えば、「http://hoge.com/hoge.cgi?DUMMY=<乱数>」として同じアドレスにならないようすればOKです。
が、こちらの解説だと乱数を使用して同じアドレスにならないようにしているので、いつかは同じ値になってしまう場合があります。
更新頻度が多ければなおさらです。
ちなみに、↑の<乱数>を0と1を交互に繰り返すとNGです。
なので、実際には下記のようにします。
Dateオブジェクトの、「getTime」を使用して、1970/1/1からの経過時間をミリ秒で取得して使用しています。
こうすれば、サーバーの時計が戻らない限り同じ値になる心配はありません。
_global.cgi_data = "dummy";
this.createEmptyMovieClip("loadTarget_mc", this.getNextHighestDepth());
this.loadTarget_mc.onData = function() {
var today_date:Date = new Date();
Num = "T" + today_date.getTime(); //1970/1/1からの経過時間を取得
trace("Num" + Num); //デバッグ出力
loadVariables("http://hoge.com/hoge.cgi?" + Num , this.loadTarget_mc);
this.createEmptyMovieClip("loadTarget_mc", this.getNextHighestDepth());
this.loadTarget_mc.onData = function() {
trace("Data Loaded"); //デバッグ出力
_global.cgi_data = this.cgi_data;
};_global.cgi_data = this.cgi_data;
var today_date:Date = new Date();
Num = "T" + today_date.getTime(); //1970/1/1からの経過時間を取得
trace("Num" + Num); //デバッグ出力
loadVariables("http://hoge.com/hoge.cgi?" + Num , this.loadTarget_mc);