0

开发一个小型引擎来运行我的 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。它除了抛出错误什么都不做,而且关于错误处理(以及一般加载 JS 文件......)的文档在 PreloadJS 网站上非常稀少。它专注于预加载图像(诚然,它看起来很棒)。无论如何,是的,它会引发错误。它不可能是文件,因为我尝试加载一个完全空白的 JS 文件(如您所见)。仍然在 Empty.js 文件上抛出错误。

恼火:) 在此先感谢。

4

1 回答 1

0

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

于 2013-03-26T16:39:48.733 回答