2015-08-31 3 views
1

Это может быть неподдерживаемо библиотекой. Просто интересно, если кто-нибудь встретил это. Я попытался загрузить obj, и проблем нет. Если я предварительно сжимаю формат gzip, он не будет загружаться и его обратный вызов никогда не будет вызван. Будьте добры к gzip obj-файлам, так как они получают хорошее сжатие.three.js OBJLoader и предварительно сжатый gzip obj не загружается

В коде нет ничего особенного.

var loader = new THREE.OBJLoader(manager); 
loader.load(meshUrl, function (sceneObject) { 
    sceneObject.traverse(function (child) { 
     if (child instanceof THREE.Mesh) { 
      child.material = material; 
     } 
    }); 
}, onProgress, onError); 

UPDATE

meshUrl если указывает на внешний URL-адрес, который несжатого файла OBJ, загружает нормально. onProgressed вызывает и ведет себя так, как вы ожидали. Если указывать на предварительно сжатую версию gzip одного и того же obj, вызывается метод onProgress, но progress.total всегда равен 0, что вызвало мой код.

Исправлено, теперь обрабатывать прогресс лучше

+0

В чем вопрос? Есть ли какой-то код, который вызывает проблему, которую вы могли бы нам показать? –

+0

См. Мое редактирование выше. Получил это работу, спасибо. –

ответ

1

Ненависть, чтобы ответить на мой собственный вопрос, но оказывается OnProgress еще называют с общим значением всегда быть 0, если содержание архивированная. Таким образом, решение заключается в том, чтобы хранить все в другом месте, в этом случае db, который загружает указанный URL-адрес и процентный процент, загруженный таким образом. Плюс параметр progress имеет lengthComputable boolean.

Смежные вопросы