AS3 «Loader» прогресс сразу уходит на 100% - PullRequest
0 голосов
/ 16 апреля 2010

Если вы перейдете к http://moederdagontbijtplacemat.nl/, вы увидите индикатор выполнения. Приложение загружает довольно большой SWF-файл с сервера, используя класс Loader. Как ни странно, индикатор выполнения сразу переходит на 100% (но загрузка все равно занимает некоторое время после этого). Код ниже, но вы увидите, что его слишком просто взломать.

--- Он работал, когда приложение находилось на другом сервере, поэтому я подумал, что, возможно, новый сервер не отправлял размер большого SWF-файла в заголовки http. Firebug действительно показывает индикатор выполнения, так что это не так, информация должна быть доступна .---

Обновление: это на самом деле неправильно, Apache фактически не отправляет Content-Length заголовок. Собираюсь разобраться в этом. : EndUpdate

Это также работает, когда я запускаю загрузчик swf локально и меняю URL (new URLRequest("Placemat.swf")) на абсолютный URL Placemat.swf на сервере.

        var l:Loader = new Loader();
        addChild(l);
        l.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, function(e:ProgressEvent) {
            s.setProgress(e.bytesLoaded/e.bytesTotal);
            trace(Math.round(100 * e.bytesLoaded/e.bytesTotal), "%");
        });
        l.contentLoaderInfo.addEventListener(Event.COMPLETE, function() {
            removeChild(s);
        });

        l.load(new URLRequest("Placemat.swf"));

Ответы [ 2 ]

0 голосов
/ 16 апреля 2010

Исправлено, Apache загружал и не отправлял заголовок Content-Length.

.htaccess:

SetEnv no-gzip dont-vary
0 голосов
/ 16 апреля 2010

Панель загрузчика работала правильно, когда я зашел на сайт.

Возможно, SWF-файл находится в кеше браузера, попробуйте очистить кеш

...