我寫我自己的草圖處理並將其插入使用processingjs在頁面上和Ajax像這樣:如何知道處理js草圖何時被加載?
$.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使用草圖進行交互。當我在(螢火蟲)鍵入此控制檯一切都很正常:
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)。 – 2012-08-24 03:40:20
我會建議只是輪詢'setInterval',直到實例不再返回'undefined' – 2012-08-24 03:42:10