我的processing.js文件中有一个函数,它调用AJAX脚本返回数组,我想用数组为代码定义一些简单的启动变量。我希望该函数在代码执行后的任何其他部分之前完成。当我运行我的代码时,setup()阶段中的警报和draw()中的第一个警报都返回“未定义”,而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调用?
发布于 2014-09-03 07:32:22
如果是在加载页面的过程中,那么使用一个标志来表示调用已经返回了怎么办?
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++;
}
}编辑:我已经在回调函数中移动了警报。
发布于 2014-09-10 05:56:48
作为给出的答案的另一种选择,我已经在processingjs.org网站上广泛地介绍了这一点,所以您可能想读一读:http://processingjs.org/articles/PomaxGuide.html#interface
https://stackoverflow.com/questions/25638558
复制相似问题