0

运行一些在 chrome 中运行良好但在最新版本的 Mozilla 中失败的画布。我知道这是不久前的一个问题,我认为新的 processing-1.4.1.js 已修复以适应此处看到的 for 循环失败。有谁知道他们是否这样做,为什么会发生这种情况以及如何解决?

编辑:

不起作用的测试代码:

void setup() {
String names[] = {"Alexis", "Thomas", "Antoine"};
   for(String name : names) {
     alert(name);  // doesn't on Firefox 17+, bug?
   }
}

void draw() {
}
4

1 回答 1

0

这是 Processing.js 的一个问题,以及 Firefox 中的一些最近的变化,如这里所讨论的。

您有两个选择:解决方案 1 是破解上述链接中 alexbbrown 所讨论的 Processing.js 文件(一个苛刻和讨厌的解决方案),基本上是找到实际的 Processing.js 文件,使用您最喜欢的文本编辑器对其进行编辑并更改第 291 行-292 来自:

if (obj.iterator instanceof
Function) return obj.iterator();

至:

if (obj.iterator instanceof Function && obj.hasNext instanceof Function)
return obj.iterator();

解决方案 2 是更改您的代码并在没有可爱的 for-each 语法(一种更柔和、妥协的解决方案)的情况下生活,替换以下行:

for (String name : names) {
  alert(name);  // doesn't on Firefox 17+, bug?
}

使用通用的 for 语法:

for (int i = 0; i < names.length; i++) {
  alert(names[i]);
}

无论你做什么,愿与你同在...

于 2013-08-30T21:50:30.470 回答