Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript processing.js,通过表单按钮访问?_Javascript_Html_Processing.js - Fatal编程技术网

Javascript processing.js,通过表单按钮访问?

Javascript processing.js,通过表单按钮访问?,javascript,html,processing.js,Javascript,Html,Processing.js,我需要单击HTML按钮并更改processing.js中的值。这看起来很简单,但这里有点不对劲: <!DOCTYPE html> <html> <head> <script src="../../processing.js"></script> </head> <body> <script type="application/processing"> int color =80; void

我需要单击HTML按钮并更改processing.js中的值。这看起来很简单,但这里有点不对劲:

<!DOCTYPE html>
<html>
<head>
    <script src="../../processing.js"></script>
</head>
<body>

<script type="application/processing">
int color =80;
void setup() {
  size(200, 200);
  stroke(255);
}
void draw() {
  background(0);
  fill(color);
  ellipse(100, 100, 160, 160);
}

function changeColor(newColor){
    color = newColor;
}
</script>
<canvas width="200" height="200"></canvas></p>
<div style="height:0px;width:0px;overflow:hidden;"></div>

<button onClick="changeColor(150)">Change Color</button>
</body>
</html>
改变int颜色=80;至var颜色=80;和 到 你应该表现得很好


这是一个术语松散类型和动态类型的概念,这意味着JS变量可以根据上下文在不同时间保存不同的数据类型。因此,此处不定义任何类型。

若要使其正常工作,请将草图功能更改为:

int myColor = 80;
void changeColor(newColor) {
  myColor = newColor;
}
将按钮代码更改为以下内容:

<button onClick="Processing.instances[0].changeColor(150)">
  Change Color
</button>
它以前不起作用的原因是

浏览器不会在块中执行代码,除非它具有type=text/javascript'。因此,与普通JavaScript块不同,changeColor函数不是页面的全局函数。 由于该函数不是全局函数,因此需要通过Processing实例和Processing.instances数组引用它。 名为color的变量会踩在名为color的处理API函数上,因此我更改了变量的名称 我将JavaScript函数更改为处理函数;Processing.js在解析草图时将处理函数附加到草图上,这意味着您可以稍后自己调用它。
谢谢萨凯特,这很有道理。但我试过了,但没有成功。我想还有一个问题。哦,我编辑了我的回复,对脚本标签做了额外的更改。请注意。我并不是说关于脚本标签这是错误的。。。我是说我不相信这是对的。processingjs.org网站上有一些遵循我使用的脚本标记格式的示例。Fwiw,数百行脚本中的大多数都是用Java编写的,其中抛出了一行javascript代码,运行良好,例如document.getElementById。。。。