preloadJS有时不会触发任何事件

时间:2015-10-07 10:44:30

标签: javascript html5 canvas createjs preloadjs

所以我在HTML5中制作了一些接一个播放的游戏,游戏使用loadgame函数和preloadJS库每5分钟更改一次。 gameID是要加载的新游戏的文件名。会发生的是,如果互联网非常慢,则不会触发任何事件,并且永远不会加载下一个游戏。

loadgame = function() 
{
    canvas = document.getElementById("canvas");
    stage = new createjs.Stage(canvas);

    loader = new createjs.LoadQueue(false);
    loader.loadFile({src:gameID+".js", type:"javascript"}, true);   
    loader.addEventListener("complete", prehandleComplete);
    loader.addEventListener("error", handleLoadError1);
    loader.addEventListener("fileerror", handleLoadError1);
}

2 个答案:

答案 0 :(得分:0)

我快速搜索了错误,found some results表示数据的mimetype或charset中可能存在导致错误的内容。

与我上面链接的帖子中的示例解决方案类似,您可以将自定义Content-Type标头附加到任何加载项:

loader.loadFile({
    src:gameID+".js", 
    headers:{"Content-Type" : "application/json; charset=utf-8"}
});  

请注意,此加载项中不需要“type”属性(扩展名将为您确定),也不需要将true作为第二个参数传递,因为这是默认值值。

答案 1 :(得分:0)

这是因为加载文件超时,并且由于某种原因它不会触发事件。

loader.loadFile({src:gameID+".js", type:"javascript", loadTimeout:"60000"}, true);