AS3 Preloader Cache Проблема? - PullRequest
0 голосов
/ 04 марта 2011

Таким образом, следующий код - это реализация Ли предварительного загрузчика, который отлично работает при первой загрузке, но сходит с ума, когда браузер загружает кэшированный файл, скачкообразно перепрыгивая с 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();
        }

1 Ответ

0 голосов
/ 04 марта 2011

Я обнаружил, что проблема возникает из-за того, что файлы размещены в домене аддона.

Чтобы исправить это, я изменил URL для ссылки на основной домен:

с

l.load(new URLRequest("http://www.foo.com/foo.swf"))

до

l.load(new URLRequest("http://foo.maindomain.com/foo.swf"))

, а также добавьте

Security.allowDomain("http://foo.maindomain.com");
...