Javascript processing.js,通过表单按钮访问?
我需要单击HTML按钮并更改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
<!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。。。。