【发布时间】:2014-02-16 16:20:04
【问题描述】:
大家下午好;
我正在使用 processingjs,我意识到 processingjs 的一个特征;
我有一个名为 mysketch1.pde 的草图文件,在我的草图中我刚刚声明了 int x=5;用于测试目的。因此,mysketch1.pde 包含一个名为 getX() 的方法,它是 x 值的 getter。
可以说,我想达到这个值并将其打印在我的网页上。如果我这样写我的 java 脚本,我就有问题了;
<script type="text/javascript">
var mysketch = Processing.getInstanceById("mysketch1");
if(mysketch==null){
window.alert("it is null");
}
else
window.alert(mysketch.getX());
</script>
在这段代码中,mysketch 变量一直返回 null。 (我在头部的 javascript 之前包括了我的草图)
但是,如果我在网页上放置一个按钮并调用与函数相同的代码,它就可以完美运行;
<script type="text/javascript">
function click(){
var mysketch = Processing.getInstanceById("mysketch1");
if(mysketch==null){
window.alert("it is null");
}
else
window.alert(mysketch.getX());
}
</script>
<button type="button" onclick="click()">place</button>
我认为这种情况发生是因为在我的 .pde 文件加载之前 javascript 会以某种方式工作。我想在 .pde 自动加载后显示 X 的值。你知道我该如何解决这个问题吗?
问候,
【问题讨论】:
-
有点小技巧,但你能轮询
getX(),直到它变成不是null吗?我不知道 JS,但是像var x = getX(); while(x != null){ sleep(1); x = getX();}? -
亲爱的凯文;感谢您的回答。我使用 setTimeout() 函数来解决这个问题。所以我让我的 getX() 方法等到。草图已准备就绪。
-
我刚刚意识到我的评论中有错字,我的意思是
while(x == null)...哦,好吧。真高兴你做到了。我会将其发布为未来访客的答案。
标签: javascript processing