Processing.js - 睡眠,等待,TimeOut,暂停,延迟?

时间:2011-09-01 18:04:59

标签: javascript jquery processing processing.js

Processing.js是否有sleep()函数?如果不是什么是在draw()循环中添加延迟的合适替代方法?

我正在使用JQuery with Processing - 我可以使用JQuery或Javascript函数在循环中导致睡眠类型延迟吗?

谢谢!

4 个答案:

答案 0 :(得分:3)

处理具有delay()功能,但不幸的是,尚未在Processing.js中实现。

你可以将JS(JQuery等)与Processing混合使用。 Processing 1.9.9现在有一个Javascript模式,还有一些处理/ DOM集成示例,例如SelectionFlower。 在sketch/pde file中,有一个方法设置称为js形式:

// called from JavaScript
void setSelectionText ( String txt )
{
    selectedText = txt;
}

并在js文件中设置超时以确保草图已初始化并可以访问:

var mySketchInstance;

// called once the page has fully loaded
window.onload = function () {
    getSketchInstance();
}

// this is called (repeatedly) to find the sketch
function getSketchInstance() {
    var s = Processing.instances[0];
    if ( s == undefined ) {
        setTimeout(getSketchInstance, 200); // try again a bit later

    } else {
        mySketchInstance = s;
        monitorSelection();
    }
}

然后当草图实例可用时,您只需在草图上调用方法/函数:

function monitorSelection () {
//bla bla
mySketchInstance.setSelectionText(txt);  // set the text in the sketch
}

HTH

答案 1 :(得分:3)

这是我的解决方案。

void waitasec (int sec) {

   int minutes = minute();
   int seconds = second();
   int hour = hour();
   int starttime = (hour * 3600) + (minutes * 60) + seconds;
   int finaltime = starttime + sec;

   while (starttime < finaltime) {

       minutes = minute();
       seconds = second();
       starttime = (hour * 3600) + (minutes * 60) + seconds;
   }
}

答案 2 :(得分:2)

资源消耗解决方案:

int timer = 0;
void draw() {
 if (timer%50 == 0) {
  //some code here
 }
 timer = timer +1;
}

答案 3 :(得分:0)

的jQuery

.delay(duration [,queueName])

说明:设置计时器以延迟队列中后续项目的执行。

请参阅链接http://api.jquery.com/delay/