Processing 我能';t在JavaScriptMode中的draw()方法中使用image()和rect()

Processing 我能';t在JavaScriptMode中的draw()方法中使用image()和rect(),processing,Processing,我似乎无法在JavaScriptMode的draw()方法中同时使用image()和rect()。当我试图运行代码时,草图什么也不做。它应该打印出一个绿色圆圈的背景,中间有一个白色的矩形。我在其他人的素描中看到了这一点,所以我不确定这是怎么回事。我在这里没有使用createShape()(我知道这在JavaScriptMode中还不起作用 这是我的密码: PImage图像; 无效设置(){ 尺寸(400400); image=loadImage(“green-circles-wallpaper-

我似乎无法在JavaScriptMode的draw()方法中同时使用image()和rect()。当我试图运行代码时,草图什么也不做。它应该打印出一个绿色圆圈的背景,中间有一个白色的矩形。我在其他人的素描中看到了这一点,所以我不确定这是怎么回事。我在这里没有使用createShape()(我知道这在JavaScriptMode中还不起作用

这是我的密码:

PImage图像;
无效设置(){
尺寸(400400);
image=loadImage(“green-circles-wallpaper-4893-5151-hd-wallpaps.jpg”);
}
作废提款(){
图像(图像,0,0,宽度,高度);
rect(100100200);
}

我试图画一个绿色的圆圈。

JavaScript模式在变量的命名方面更为挑剔。具体来说,变量的命名不能与函数的命名相同

您的
image
变量正在干扰
image()
函数,因为它们具有相同的名称。要解决您的问题,只需将
image
变量重命名为类似于
myImage
的名称即可

PImage myImage;
void setup() {
  size(400,400);
  myImage = loadImage("green-circles-wallpaper-4893-5151-hd-wallpapers.jpg");
}
void draw() {
  image(myImage,0,0,width,height);
  rect(100,100,200,200);
}
您还应该养成检查JavaScript控制台错误的习惯。在大多数浏览器中,您可以通过按
F12
键打开开发工具。在那里,您会找到控制台选项卡,您得到的任何错误都会显示在那里。您的代码生成一个错误,上面写着
“未捕获类型错误:图像不是函数”
这很有意义,因为您已经用
image
变量覆盖了
image()
函数

这包括在:

Processing.js需要更多的注意变量命名,而不是处理

JavaScript的强大功能之一是其动态、无类型的特性。Java等类型化语言可以重用名称,而无需担心歧义(例如,方法重载),Processing.js不能。如果不深入了解JavaScript的内部工作原理,对处理开发人员最好的建议是不要将处理中的函数/类/等名称用作变量名。例如,名为line的变量可能看起来合理,但它会导致名为line()的变量出现问题函数内置于Processing和Processing.js中。这同样适用于内置函数和您创建的函数。一个好的经验法则是:避免在同一草图中使用变量foo作为函数foo()


这个代码到底是做什么的?当你运行它的时候你看到了什么?你期望看到什么?它应该打印出一个绿色圆圈的背景,中间有一个白色的矩形。你看到了什么?你在用什么图像?(我怀疑这是问题,但不妨排除它。)我什么也没看到。什么都没做。