PDA

Просмотр полной версии : прелоадер AS2 не обновляет кэш в Opera, Google Chrome и др.


willyfog
20.01.2011, 23:22
Здравствуйте. У меня flash-сайт на action script2. Из index.html вызываем главное меню main.swf в который подгружаются остальные файлы.Проблема такая:
С IE все нормально. Opera и Google Chrome не обновляют подгружаемые swf файлы в кэше. В main.swf подгружаешь logotype.swf. Вместо того, что бы скачать с сервера новый logotype.swf, он открывает уже скачанный.
Подскажите, что можно в AS2 сделать? И какие есть еще методы (PHP, XML)?

Код:
var my_mcl:MovieClipLoader = new MovieClipLoader();
var my_lst:Object = new Object();
my_mcl.addListener(my_lst);
my_lst.onLoadStart = function(target_mc:MovieClip) {
varTarget = _root.preload_mc;
varTarget.varTween = new Tween(varTarget, "_alpha", Regular.easeOut, varTarget._alpha, 100, 0.25, true);
};
my_lst.onLoadProgress = function(target_mc:MovieClip, loaded:Number, total:Number) {
varPercent = loaded/total*100;
_root.preload_mc.preload_txt.text =Math.round(varPercent)+"% из "+Math.round(total/1000)+"K загружено.";
_root.preload_mc.mcBar._xscale = Math.round(varPercent);
};
my_lst.onLoadComplete = function(target_mc:MovieClip) {
varTarget = _root.preload_mc;
varTarget.varTween = new Tween(varTarget, "_alpha", Regular.easeOut, varTarget._alpha, 0, 0.5, true);
_root.preload_mc.preload_txt.text="";
};
my_lst.onLoadInit = function(target_mc:MovieClip) {
varTarget = target_mc;
mainMenu.centerMenu._y=Stage.height/2;
varTarget.varTween = new Tween(varTarget, "_alpha", Regular.easeIn, 0, 100, 1, true);
};

При нажатии на кнопку «Логотип»:
varTarget = _root.cont_mc;
_root.my_mcl.loadClip("logotype.swf", _root.cont_mc);

Hauts
21.01.2011, 08:37
_root.my_mcl.loadClip("logotype.swf?" + new Date().getTime(), _root.cont_mc);


Избавит от кэширования.

willyfog
21.01.2011, 11:23
Спасибо большое! Все работает!

можно еще и так:
_root.my_mcl.loadClip("logotype.swf?" + new Date().getDate()+ new Date().getHours(), _root.cont_mc);
Это на тот случай, если скорость трафика низкая и качаешь с сайта другие файлы, а потом возвращаешься обратно к logotype.swf
Здесь по идее страница не обновляется в кэше в течение часа(по местному времени) + даты.

dark256
21.01.2011, 12:25
Это вообще кошмарная беда! ИЕ единственный, кто нормально обновляет файлы из кэша!
Все прочее - это полный бэнц! Проще отлаживать через ИЕ.