首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Jquery $.getJSON无法在HTML5画布中正确呈现

Jquery $.getJSON无法在HTML5画布中正确呈现
EN

Stack Overflow用户
提问于 2011-09-21 05:42:10
回答 1查看 542关注 0票数 0

我确信我在这里没有遵循正确的游戏编码约定,但我在学习的过程中学到了很多。

参考网址:http://www.rustyeight.com/game

我有一个JSON提要,我正在使用它作为基于sprite的地图渲染引擎的一部分。我使用JQuery的$.getJSON方法从提要(maps.js)中提取信息并用其内容填充数组。

然后我用一个绘图函数调用这个函数。

代码语言:javascript
运行
复制
function draw(ctx){
    map(ctx);
    makeMan(ctx);
}

我发现奇怪的是我没有在$.getJSON函数中声明数组,当我试图访问它们时,所有的数组项都会显示为未定义。因此,我只是将变量call和所有其他进程移动到函数中,它似乎工作得很好。

我还有一个从对象中提取字符数据的函数。

我现在遇到的问题是,无论makeMan()函数调用位于何处,字符始终呈现在地图下。我有一种感觉,这个问题是基于我不能在json调用之外访问map数组的事实。我还猜测,每次我调用绘图函数时,都必须将上下文强制到函数中,这真的很低效。

有关代码,请参阅上面的链接。如果您需要任何澄清,请告诉我。我要把我的头发拉出来!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-21 06:05:59

因为您的map()函数使用AJAX,所以它是异步的。因此,当浏览器停止执行HTTP请求时,它会继续执行脚本的其余部分。在这种情况下,它呈现的是人。

因此,整个脚本执行,渲染man,然后httpRequest完成并在他上面渲染地图。

应该在AJAX调用之后调用makeMan(),方法是指定一个回调函数在完成后执行,或者只需在map AJAX函数的末尾内联它。

我刚刚想起了jQuery.when,这正是你所需要的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7492142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档