预加载Javascript文件

时间:2013-03-26 04:47:55

标签: javascript html5 preload

使用小型引擎运行我的HTML5测试游戏,将其作为深入了解Javascript并享受乐趣的好方法。成功,顺便说一句。

但是,我刚发现这个名为PreloadJS(http://www.createjs.com/#!/PreloadJS)的酷小脚本。还使用John Resig的经典继承类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。除了抛出错误之外什么也没做,而且PreloadJS站点上的错误处理文档(以及一般加载JS文件......)非常稀少。它侧重于预加载图像(诚然,这看起来很棒)。无论如何,所以,这是错误。它不能是文件,因为我尝试加载一个完全空白的JS文件(如你所见)。仍然在Empty.js文件上抛出错误。

恼火:)提前致谢。

1 个答案:

答案 0 :(得分:0)

PreloadJS脚本在浏览器支持的情况下使用XHR。为了使其能够与本地托管的脚本一起正常运行,必须运行本地Web服务器。激活我的本地网络服务器并尝试相同的操作后,取得圆满成功。