preloadJS有时不触发任何事件

preloadJS sometimes doesn't trigger any event

本文关键字:任何 事件 preloadJS      更新时间:2023-09-26

所以我在HTML5中制作了一些游戏,这些游戏一个接一个地玩,游戏每5分钟改变一次,使用preloadJS库的loadgame函数。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);
}

我对错误进行了快速搜索,发现一些结果表明可能是数据的mime类型或字符集中的某些内容导致了错误。

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

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

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

这是因为加载文件超时而发生的,并且由于某些原因它没有触发事件。

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