sto usando un po 'di javascript per consentire agli utenti di caricare dinamicamente uno schizzo su click per un elemento canvas utilizzando:dinamicamente "scaricare" un abbozzo di elaborazione JS dalla tela
Processing.loadSketchFromSources ('canvas_id', [ 'sketch.pde']);
se chiamo Processing.loadSketchFromSources (...) una seconda (o terza ...) Ora, si carica un secondo (o terzo ...) File .pde sulla tela, che è quello che ho mi aspetterei.
Mi piacerebbe che l'utente fosse in grado di fare clic su un altro collegamento per caricare uno schizzo diverso, scaricando efficacemente quello precedente. Esiste un metodo che posso chiamare (o una tecnica che posso usare) per verificare se Processing ha un altro schizzo in esecuzione e, in tal caso, dirgli di scaricarlo prima?
C'è qualche tipo di metodo Processing.unloadSketch() che sto trascurando? Potrei semplicemente rilasciare l'oggetto DOM canvas e ricrearlo, ma questo (1) sembra usare un martello quando ho bisogno di un ago, e (2) risulta in uno sfarfallio dello schermo che vorrei evitare.
Non sono un esperto di JS, ma ho fatto del mio meglio per guardare attraverso il sorgente processing.js per vedere quali altre funzioni possono esistere, ma sto colpendo un muro. Ho pensato che forse potrei guardare Processing.Sketches.length per vedere se qualcosa è già caricato, ma semplicemente farlo fuori dall'array non sembra funzionare (non pensavo che sarebbe successo).
Sto usando ProcessingJS 1.3.6.
Grazie per aver risposto ..ci sono il 75% ... Ci sono due "modalità" di utilizzo dell'elaborazione in Javascript: (1) caricare dinamicamente un file .pde di elaborazione, oppure (2) scrivere lo script di elaborazione all'interno di JS. Il "difetto fatale" è che **. LoadSketchFromSources() ** non sembra restituire un handle utilizzabile. Invece, devi guardare ** Processing.instances.length ** per determinare che uno è attualmente in esecuzione. In tal caso, puoi chiamare ** Processing.instances [0] .exit() ** ... a condizione che sia in esecuzione un solo script. (Scusa, non posso fare +1 sulla tua risposta - non ho ancora abbastanza punti per quello). –