我需要单击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>
答案 0 :(得分:0)
将int color = 80;
更改为var color = 80;
和
<script type="application/processing">
至<script type="text/javascript">
你应该做得很好。
这是术语loose typing
和dynamic typing
已知的概念(这意味着JS变量可以根据上下文在不同时间保存不同的数据类型)。所以,你没有在这里定义任何类型。
答案 1 :(得分:0)
要使其正常工作,请将草图功能更改为:
int myColor = 80;
void changeColor(newColor) {
myColor = newColor;
}
将您的按钮代码更改为以下内容:
<button onClick="Processing.instances[0].changeColor(150)">
Change Color
</button>
以前没有用的原因是
<script>
块中执行代码,除非它具有type="text/javascript'
。因此,与普通的JavaScript块不同,changeColor函数不是页面的全局。Processing.instances
数组引用它。color
的变量会踩踏名为color()
的处理API函数,因此我更改了变量的名称