在fileselected
循环执行之前,此代码中的while
函数是否完成了它的执行?
void setup()
{
size(800, 600);
selectInput("Select a file to process:", "fileSelected");
while(data==null)
{
delay(1000);
}
}
void fileselected()
{
*
*
*
*
}
如何使draw函数等到收到必要的参数才能运行?
答案 0 :(得分:2)
设置和绘制功能在处理中并行运行
没有。首先调用setup()
函数并完成,然后每秒调用draw()
函数60次。
fileselected函数甚至在循环执行之前就完成了它的执行。
当用户选择文件时,将调用fileSelected()
函数。你真的不应该在这样的循环中调用delay()
函数。
如何让draw函数等到它收到必要的参数才能运行。
这样的事情:
boolean fileLoaded = false;
void setup(){
size(800, 600);
selectInput("Select a file to process:", "fileSelected");
}
void fileSelected(File selection){
fileLoaded = true;
}
void draw(){
if(!fileLoaded){
//short-circuit and stop the function
return;
}
}
您可以更进一步,使用noLoop()
和loop()
功能。更多信息可以在the reference找到。