1

この質問で提案されているように、Processing.instances[0].exit() を呼び出したい:キャンバスから処理 JS スケッチを動的に「アンロード」する

しかし、Processing.instances を呼び出すと null が返され、javascript コンソールでエラーが発生しません。Processing.instances.length も (0) を返します。

ここにJavaScriptコード:

document.onkeydown = function(e) { // or document.onkeypress
e = e || window.event;
if (e.keyCode == 115 || e.keyCode == 83) { //press "s" or "S"
    alert(Processing.instances.length);
}
};

ウェブサイトの URL は次のとおりです: http://culturadigital.cc/nuevaweb

ありがとう

4

2 に答える 2

1

pjs フォーラムでわかったように、Processing.instances の運命は不確かです。これはどう:

document.onkeydown = function(e) { // or document.onkeypress
  e = e || window.event;
  if (e.keyCode == 115 || e.keyCode == 83) { //press "s" or "S"
    var canvases = document.getElementsByClassName("processingsketch");
            window.alert(canvases.length);
    if (canvases) {
      var ps = Array();
      for (j=0;j<canvases.length;j++) {
        ps[j]=Processing.getInstanceById(canvases[j].getAttribute('id'));
      }
      for (j=0;j<canvases.length;j++) {
        window.alert("ps " + ps[j]);
        window.alert(canvases[j].getAttribute('id'));
        if(ps[j]){ps[j].exit();} //per fartagaintuxedo's comment below: to avoid second error because once it exits then there is no longer an instance in that canvas
        canvases[j].width = canvases[j].width; //to obliterate the canvas instead of just freezing it
      }
    }
  }
};

参考までに、ここでキャンバスをクリアするより良い方法があるかもしれません:再描画のためにキャンバスをクリアする方法

于 2013-08-29T22:36:05.250 に答える