私は、処理中に自分のスケッチを書かれており、そのようなprocessingjsとAjaxを使ってページに挿入されている。しかし、processingjsスケッチがいつロードされたかを知るには?
<canvas data-processing-sources="first-sketch.pde" id='sketch'></canvas>
これは動作します:ここに
$.getScript("js/libs/processingjs.js", function() {
$('#sketch').each(function() {
Processing.loadSketchFromSources(this, [$(this).data('processing-sources')]);
});
});
はキャンバス#sketch
が参照しているあります私はまた、Javascriptを使ってスケッチとやりとりしたい。私は私の(放火魔)でこれを入力すると、すべてが素晴らしい作品コンソール:
var sketch = Processing.getInstanceById('sketch');
sketch.addTweet(30, 30, 100);
(addTweetはスケッチがロードされた後に利用可能となるスケッチ、の関数である) しかし、私はのようなjavascriptの内側に置くときそう:
$.getScript("js/libs/processingjs.js", function() {
$('#sketch').each(function() {
Processing.loadSketchFromSources(this, [$(this).data('processing-sources')]);
var sketch = Processing.getInstanceById('sketch');
sketch.addTweet(30, 30, 100);
});
});
私はエラーを取得する:
Uncaught TypeError: Cannot call method 'addTweet' of undefined
私はスケッチは、この時点でロードされていない、コールバックまたはコードを実行するための適切な方法があると思いますそれがロードされたら?
script
タグにprocessingjs libを含めると、同じエラーが表示されます。 jQuery.readyでコードを実行します。
これはまだ解決されていないようです。 [ここにいくつかの洞察があります](https://processing-js.lighthouseapp.com/projects/41284/tickets/1887)。 –
インスタンスが 'undefined'を返さなくなるまで単に' setInterval'をポーリングすることをお勧めします –