2013-03-26 87 views
0

在一個小型引擎上運行我的HTML5測試遊戲,將它用作深入Javascript並在同一時間玩得開心的好方法。成功,順便說一句。預加載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文件上拋出一個錯誤。

懊惱:)提前致謝。

回答

0

PreloadJS腳本在可用瀏覽器支持的情況下使用XHR。爲了使這種與本地託管的腳本正常工作,一個本地網絡服務器必須運行。在激活我的本地網絡服務器並嘗試相同的操作時,完全成功。