Таким образом, следующий код - это реализация Ли предварительного загрузчика, который отлично работает при первой загрузке, но сходит с ума, когда браузер загружает кэшированный файл, скачкообразно перепрыгивая с 0% до 100%
То, что я пытался безрезультатно:
- отключение сжатия gzip, хотя я не думаю, что оно включено
Использование ENTER_FRAME вместо прогресса и завершения
l.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loop);
l.contentLoaderInfo.addEventListener(Event.COMPLETE, done);
l.load(new URLRequest("http://www.foo.com/foo.swf"));
function loop(e:ProgressEvent):void
{
perc = Math.round(e.bytesLoaded / e.bytesTotal * 100);
lt.text = String(perc);
if (perc >= 100)
l.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS, loop);
}
function done(e:Event):void
{
l.contentLoaderInfo.removeEventListener(Event.COMPLETE, done);
addChild(l);
}
Я не верю, что загружаю его более одного раза:
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
Security.allowDomain("http://www.foo.com");
preLoader();
}