Javascript 如何从javaskcript访问processing.js变量并对其进行更改

Javascript 如何从javaskcript访问processing.js变量并对其进行更改,javascript,processing,processing.js,Javascript,Processing,Processing.js,在我得到的加工草图中 int posX = 10; int posY = 10; int s = 12; int vx,vy; int red,gr,bl, =0; void setup(){ size(200,200); vx = random(6); vy = random(6); } void draw(){ if(mousePressed){ red = r; gr = g; bl = b; } backgro

在我得到的加工草图中

int posX = 10; 
int posY = 10;
int s = 12;
int vx,vy;
int red,gr,bl, =0;

void setup(){
    size(200,200);
    vx = random(6);
    vy = random(6);
}

void draw(){
    if(mousePressed){
    red = r;
    gr = g;
    bl = b;
    }
    background(red,gr,bl);
    fill(255);
    posX += vx ;
    posY += vy ;

    if (posX > width || posX<0){
        vx *= -1;
    }
    if(posY > height || posY < 0){
        vy *= -1;
    }
    ellipse (posX,posY,s,s);
}
intposx=10;
int-posY=10;
int s=12;
intvx,vy;
红色整数,gr,bl,=0;
无效设置(){
规模(200200);
vx=随机(6);
vy=随机(6);
}
作废提款(){
如果(鼠标按下){
红色=红色;
gr=g;
bl=b;
}
背景(红色、绿色、蓝色);
填充(255);
posX+=vx;
posY+=vy;
如果(posX>宽度| | posX高度| | posY<0){
vy*=-1;
}
椭圆(posX,posY,s,s);
}
HTML:


开始
停止
var处理立场;
sp=1;
函数startSketch(){
开关状态(真);
}
函数stopSketch(){
开关状态(假);
}
功能开关状态(on){
如果(!processingInstance){
processingInstance=Processing.getInstanceById('canvas');
}
如果(打开){
processingInstance.loop();
}
否则{
processingInstance.noLoop();
}
alert(processingInstance.posX);//此返回未定义我必须看到10
}

当我试图通过javascript访问posX变量并在屏幕上提醒它时,浏览器会告诉我该变量未定义。是否有任何方法访问变量并更改其值

您的草图有两个逻辑问题:在
int
float
类型之间切换,并且使用未定义的变量
r
g
b

我强烈建议使用Java模式编程,以便这些错误更加明显,然后在准备部署时切换到JavaScript模式

但您真正的问题是:Processing.js只允许您访问草图的函数,而不是其变量。

如果您想在JavaScript中获得
posX
,那么必须编写
getPosX()
函数,然后从JavaScript调用该函数


如果您想设置它,同样的事情是:创建一个
setPosX()
函数,然后调用它。

您的草图有两个逻辑问题:您在
int
float
类型之间切换,并且使用未定义的变量
r
g
b

我强烈建议使用Java模式编程,以便这些错误更加明显,然后在准备部署时切换到JavaScript模式

但您真正的问题是:Processing.js只允许您访问草图的函数,而不是其变量。

如果您想在JavaScript中获得
posX
,那么必须编写
getPosX()
函数,然后从JavaScript调用该函数


如果您想设置它,也要做同样的事情:创建一个
setPosX()
函数,然后调用它。

试试这个,它会在js的第67行记录一个处理变量


Hello Web-从JavaScript控制处理
int x=y=1;
int xVel=yVel=3;
int t=300;
无效设置(){
大小(310200);
背景(100);
中风(255);
println('helloweb!');
}
int getX(){
返回t;
}
作废提款(){
椭圆(x,y,10,10);
x=x+xVel;
y=y+yVel;
如果((x>宽度)| |(x<0)){
xVel=xVel*-1;
}
如果((y>高度)| |(y<0)){
yVel=yVel*-1;
}
}
开始
停止

试试这个,它会在第67行的js中记录一个处理变量


Hello Web-从JavaScript控制处理
int x=y=1;
int xVel=yVel=3;
int t=300;
无效设置(){
大小(310200);
背景(100);
中风(255);
println('helloweb!');
}
int getX(){
返回t;
}
作废提款(){
椭圆(x,y,10,10);
x=x+xVel;
y=y+yVel;
如果((x>宽度)| |(x<0)){
xVel=xVel*-1;
}
如果((y>高度)| |(y<0)){
yVel=yVel*-1;
}
}
开始
停止

你能贴一张纸或一把小提琴吗?什么时候执行JavaScript?你确定这是在加载处理代码后发生的吗?这是一个普通的HTML文档,在我的画布上我有两个按钮,一个启动
loop()
,另一个用
Noloop()停止动画
在它们之后,我得到了我的javascript代码,我很高兴我的代码被加载了,因为我给球设置了动画,让它在画布上游荡,我通过按钮启动和停止动画。如果看不到我们可以运行的,或者一个我们可以使用的JSFIDLE。没有必要出现在那个特定的示例中。我只需要一种方法来访问从javascript到处理的变量,并能够读写该变量(如果可能)。您发布的代码看起来不错,但它不足以真正回答您的问题。我们需要看到更多的代码,特别是我们可以运行的代码,可以是一个或一个JSFIDLE?什么时候执行JavaScript?你确定这是在加载处理代码后发生的吗?这是一个普通的HTML文档,在我的画布上我有两个按钮,一个启动
loop()
,另一个用
Noloop()停止动画
在它们之后,我得到了我的javascript代码,我很高兴我的代码被加载了,因为我给球设置了动画,让它在画布上游荡,我通过按钮启动和停止动画。如果看不到我们可以运行的,或者一个我们可以使用的JSFIDLE。没有必要出现在那个特定的示例中。我只需要一种方法来访问从javascript到处理的变量,并能够读写该变量(如果可能)。您发布的代码看起来不错,但它不足以真正回答您的问题。我们需要看到更多的代码,特别是我们可以运行的代码,无论是a还是JSFIDLE
<!DOCTYPE html>
 <html>
 <head>
     <script src="processing-1.4.1.js"></script>
 </head>
 <body>
     <div id="msg">
     </div>
     <canvas id = "canvas" data-processing-sources="mixing.pde"></canvas>
     <button onclick = "startSketch();">Start</button>
     <button onclick = "stopSketch();">Stop</button>
     <script type="application/javascript">
         var processingInstance;
         sp = 1;

         function startSketch(){
            switchSketchState(true);
         }

         function stopSketch(){
            switchSketchState(false);
         }


         function switchSketchState(on){
            if(!processingInstance){
                processingInstance = Processing.getInstanceById('canvas');
            }

            if (on){
                processingInstance.loop();
            }
            else{
                processingInstance.noLoop();
            }
            alert(processingInstance.posX);// this return undefined i have to see 10
         }
     </script>
 </body>
 </html>