繁体   English   中英

Processing.js线程化

[英]Processing.js Threading

我的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调用?

如果是在页面加载期间,那么使用标志作为指示呼叫已返回该怎么办?

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++;
    }
}

编辑:我已经移动了回调函数内的警报。

作为给定答案的替代答案,我已经在processingjs.org网站上广泛介绍了此内容,因此您可能希望阅读以下内容: http : //processingjs.org/articles/PomaxGuide.html#interface

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM