我正在制作一个画布动画/游戏,我在其中一个函数中遇到for循环问题。在兴趣空间中,我删除了一些代码。
function LoadScene(){ // function with the issue
console.dir(game.frames); //195 objects 0{}, 1{}, 2{}, etc.
for (var prop in game.frames){
console.log(prop); //Does not get here
if (game.frames[prop].scene == game.currentScene){
game.sceneData.push(game.frames[prop]);
}
}
}
function LoadFrames(){
//xhr request
// if successs load json data into namespace variable
// get canvas
// drawImage Loading Screen
// return true
}
function StartGame(){
if(LoadFrames()){
LoadScene();
}
}
for循环中每次都失败(永远不会进入循环),即使对象中有项目。我认为它可能是一个悬挂问题,所以我将所有变量放在脚本顶部的命名空间中并重新安排我的功能。我认为它也可能是一个异步问题,因为当我使用调试器逐步执行该函数时该函数可以工作,但如果是这种情况,那么我不知道如何修复它。
答案 0 :(得分:0)
function LoadFrames(){
//xhr request
// if successs load json data into namespace variable
// get canvas
// drawImage Loading Screen
// return true
}
XMLHttpRequest
中的LoadFrames
可以异步工作,而LoadFrames
可以同步工作。 LoadFrames
始终在发送AJAX请求后立即返回true
,无论是否加载了帧(可能是game.frames
?);即它不会检查请求的响应。