Предварительная загрузка файлов Javascript
Работаю над небольшим движком для запуска моих тестовых HTML5-игр, используя его как отличный способ углубиться в Javascript и одновременно получать удовольствие. Успех, кстати.
Тем не менее, я только что нашел этот крутой маленький скрипт под названием PreloadJS ( http://www.createjs.com/). Также с использованием классического класса наследования Джона Резига JS. Очень круто, наслаждаюсь этим. Я пытаюсь использовать PreloadJS для загрузки всех файлов моего движка... но у меня, похоже, возникла проблема. Вот код, который я использую (намеренно оставляя его простым):
var ScriptLoader = Class.extend({ // Want to add functionality to this to allow PHP or inline loading...perhaps later
init: function() {
this.fileList = [
'Empty.js',
'./engine/Scene.js'
];
this.preload;
},
loadProjectSource: function(directory) {
if (this.preload != null) { this.preload.close(); }
this.preload = new createjs.LoadQueue();
this.preload.addEventListener("fileload", this.fileLoaded);
this.preload.addEventListener("error", this.fileError);
this.preload.setMaxConnections(5);
this.loadAnother();
},
loadAnother: function() {
var item = this.fileList.shift();
if(this.fileList.length != 0) {
this.preload.loadFile(item);
}
},
fileLoaded: function(e) {
debug('Loaded ' + e.item.src);
this.loadAnother();
},
fileError: function(e) {
debug('Error ' + e.item.src);
}
}
Из моего экземпляра движка я вызываю ScriptLoader.loadProjectSource. Он ничего не делает, только выдает ошибки, и документация по обработке ошибок (и загрузке файлов JS в целом...) очень редка на сайте PreloadJS. Он фокусируется на предварительной загрузке изображений (что, по общему признанию, выглядит великолепно). Так или иначе, да, это бросает ошибки. И это не могут быть файлы, так как я попытался загрузить совершенно пустой файл JS (как вы можете видеть). Все еще выдает ошибку в файле Empty.js.
Раздражает:) Заранее спасибо.
1 ответ
Сценарий PreloadJS использует XHR, где это возможно, с поддержкой браузера. Для правильной работы этого сценария с локальными сценариями должен быть запущен локальный веб-сервер. После активации моего локального веб-сервера и попытки выполнить ту же операцию, полный успех.