我的processing.js文件中有一个函数,它调用一个AJAX脚本来返回一个数组,我想为我的代码定义一些简单的起始变量。我希望在执行代码之后的任何其他代码部分之前完成此函数。 当我运行我的代码时,setup()阶段的警报和draw()中的第一个警报返回" undefined"而draw()阶段的下一次迭代将返回我需要的实际数组。
处理代码:
var loadArray;
setup() {
loadArray = new Array();
js_GetArray(function(data) {
loadArray = data;
});
alert(loadArray[1]);
alert(loadArray[2]);
}
void draw()
{
alert(loadArray[k]);
k++;
}
AJAX:
<!-- Read the vars numbers from the mysql database and return them -->
<script language="JavaScript" type="text/javascript">
function js_GetArray(callback) {
$.get( "load.php", function( actiondata ) {
var obj = JSON.parse(actiondata);
callback(obj);
});
}
</script>
有没有办法强制程序完成js_GetArray调用,然后再转到其余的代码?
答案 0 :(得分:1)
如果是在加载页面的过程中,那么使用标志作为调用已返回的指示呢?
var loadArray;
var isloaded = false;
setup() {
loadArray = new Array();
js_GetArray(function(data) {
loadArray = data;
isloaded = true;
alert(loadArray[1]);
alert(loadArray[2]);
});
}
void draw()
{
if(isloaded)
{
alert(loadArray[k]);
k++;
}
}
修改强> 我已将警报移到回调函数中。
答案 1 :(得分:0)
作为给定答案的替代答案,我已经在processingjs.org网站上广泛介绍了这一点,所以你可能想要读一读:http://processingjs.org/articles/PomaxGuide.html#interface