私は処理中に独自のスケッチを作成し、次のようにprocessingjsとajaxを使用してページに挿入しました。
$.getScript("js/libs/processingjs.js", function() {
$('#sketch').each(function() {
Processing.loadSketchFromSources(this, [$(this).data('processing-sources')]);
});
});
これがキャンバス#sketch
が参照しているものです:
<canvas data-processing-sources="first-sketch.pde" id='sketch'></canvas>
これは機能しますが、Javascriptを使用してスケッチを操作したいとも思います。(firebug)コンソールにこれを入力すると、すべてがうまく機能します。
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
タグにprocessingjslibを含めると、同じエラーが発生します。jQuery.readyでコードを実行します。