【问题标题】:processingjs reaching sketch value without functionprocessingjs在没有功能的情况下达到草图值
【发布时间】: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


【解决方案1】:

您应该将代码放在window.onload 事件中:

window.onload = function () {
    var mysketch = Processing.getInstanceById("mysketch1");    
    if (mysketch === null) {
        window.alert("it is null");     
    } else { 
        window.alert(mysketch.getX());
    }
}

【讨论】:

  • 亲爱的佐德;不幸的是,它做同样的事情。我还尝试了 body 标签的 onLoad 事件。
【解决方案2】:

解决此问题的一种方法是轮询getX() 函数,直到草图准备就绪,例如设置超时以等待变量不为空。这种方法也可以用来检查草图何时准备就绪,比如有一个函数isReady(){ return true;} 并等待它不为空来运行脚本的其余部分。

【讨论】:

    猜你喜欢
    • 2020-09-16
    • 2020-11-15
    • 2018-12-30
    • 1970-01-01
    • 2020-11-11
    • 1970-01-01
    • 1970-01-01
    • 2019-01-02
    • 2013-01-06
    相关资源
    最近更新 更多