gpt4 book ai didi

javascript - 如何知道何时加载了 processingjs 草图?

转载 作者:行者123 更新时间:2023-11-29 15:46:48 26 4
gpt4 key购买 nike

我在处理中编写了自己的草图,并使用 processingjs 和 ajax 将其插入到页面中,如下所示:

$.getScript("js/libs/processingjs.js", function() {
$('#sketch').each(function() {
Processing.loadSketchFromSources(this, [$(this).data('processing-sources')]);

});
});

这是 #sketch 所指的 Canvas :

<canvas data-processing-sources="first-sketch.pde" id='sketch'></canvas>

这可行,但我还想使用 Javascript 与草图进行交互。当我在我的 (firebug) 控制台中输入这个时,一切都很好:

var sketch = Processing.getInstanceById('sketch');
sketch.addTweet(30, 30, 100);

(addTweet 是 sketch 的函数,加载 sketch 后可用)但是当我像这样把它放在 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 库时,我收到同样的错误。并在 jQuery.ready 上运行代码。

最佳答案

这是我为我的一个项目整理的东西。它不是很漂亮,但它可以完成工作(目前)。

var timer = 0,
timeout = 3000,
mem = setInterval(function () {
var sketch = Processing.getInstanceById("processingCanvas");
if (sketch) {
console.log("SKETCH HAS LOADED");
clearInterval(mem);
} else {
timer += 10;
if (timer > timeout) {
console.log("FAILED TO LOAD SKETCH");
clearInterval(mem);
}
}
}, 10);

关于javascript - 如何知道何时加载了 processingjs 草图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10281747/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com