2

我正在尝试从 processing 转换为 processingjs 并且有一些我无法理解的东西。

在处理以下代码时,会返回您输入的任何字母,尽管在 processingjs 中它只是返回键码值,但我需要的是字母而不是代码。

String name="";

void setup(){
 size(200,200);
}

void draw(){  
}

void keyPressed() {
  if(key==ENTER) {
  name="";
}
else {
 name+=key;
 println(name);
 }
}
4

3 回答 3

1

经过数小时的搜索和上述答案,我在这里 peepproject.com/forums/thread/266/view 找到了比我更有说服力的答案。基本上解决方案是在构造 a 之前将其转换int为a并将其放入.char()Stringarray

于 2012-10-22T00:19:03.297 回答
0

而不是name += key,尝试name += key.toString()

Processing 会println自动为您进行类型转换,因此 的charPApplet.key会打印为字母。JavaScript 字符串连接的工作方式不同;的整数值PApplet.key将作为整数附加到字符串中,并且不会自动转换为字符串。您必须手动完成。

于 2012-10-21T19:29:03.573 回答
0

需要在Processing和Processing.js中使用char转换功能:

http://processingjs.org/reference/char_/

它显示为数字的原因是这一行:

char x = 97; //supposed to be an 'a'

在 Java 中进行强制转换(可能需要 char x = (char)97)。

但是在 processing.js 中它被执行为:

var x = 97;

由于 javascript 具有动态类型。因此,您需要显式地强制类型转换,例如从 int->char。

于 2012-10-21T19:22:10.103 回答