我的程序中有一个按钮功能。大部分工作,但是当我单击时,它不会执行if。包含的代码


var rectbutton = function(x,y,width,height,bevel,label,basecolor,textcolor,hovercolor,changevar,changevarvalue){
textAlign(CENTER,CENTER);
textSize(height);
fill(basecolor);
rect(x-width/2,y-height/2,width,height,bevel);
fill(textcolor);
text(label,x,y+5);
if(mouseX>=x-width/2 && mouseX<=x+width/2 && mouseY>=y-height/2 && mouseY<=y+height/2){
fill(hovercolor);
rect(x-width/2,y-height/2,width,height,bevel);
fill(textcolor);
text(label,x,y+5);
if(mouseIsPressed){
var changevar=changevarvalue;
}
}
}; 

用:rectbutton(200,250,250,50,5,"PLAY",color(255,255,255),color(0,0,0),color(255,0,0),playerState,1);

一切都有效,直到我点击。不将 changevar 设置为 changevarvalue。尝试了changevar=changevarvalue;而不是var changevar=changevarvalue;

在截取的代码中,任何地方都没有定义鼠标被按下,它丢失了吗?您可能需要向我们提供更完整的代码示例。

此外,如果发生任何 JavaScript 错误,请尝试查看您的控制台。

在 js 中,对象通过引用传递,原语通过值传递。如果要更新changevar变量,则必须在调用rectbutton函数而不是某个原始值时在 changevar 参数中传递一个对象。我假设playerState包含一些原始而不是对象作为值。

最新更新