Processing.js - Sleep, Wait, TimeOut, Pause, Delay?

logic-unit picture logic-unit · Sep 1, 2011 · Viewed 15.8k times · Source

Is there a sleep() function for Processing.js? If not what would be a suitable alternative to add a delay in the draw() loop?

I am using JQuery with Processing - can I use a JQuery or Javascript function to cause a sleep type delay in the loop?

Thanks!

Answer

George Profenza picture George Profenza · Sep 1, 2011

Processing has a delay() function but unfortunately that is not implemented into Processing.js yet.

You can mix JS(JQuery,etc.) with Processing though. Processing 1.9.9 has a Javascript mode now and there are examples for Processing/DOM integration, like SelectionFlower. In the sketch/pde file there is a method setup to be called form js:

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

and in the js file, a timeout is set to make sure the sketch is initialized and can be accessed:

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();
    }
}

Then when the sketch instance is available, you can simply call a method/function on the sketch:

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

HTH