我正在使用ProcessingJs。我想做的只是从我的 pde 文件中获取一个变量以在我的 javascript 中使用。这里唯一的例子似乎是当你直接在javascript中编写处理代码时。我正在尝试加载一个 pde 文件,然后在我的 javascript 中使用 pde 中的一个变量。
Processingjs 网站给出了这些段落:
从 Processing 代码扩展到 JavaScript 比从另一种方式更容易,因为 Processing.js 解析器创建的 JavaScript 不会直接在全局对象上公开。相反,您可以使用 Processing.instances 属性获得访问权限。
Processing 构造函数跟踪它创建的实例,并使用 getInstanceById() 方法使它们可用。默认情况下,当 具有数据处理源属性时,其 id 将用作处理实例的唯一标识符。如果没有提供 id 属性,则可以使用 Processing.instances[0]。
他们在本段下面指出的示例没有链接。这一定是我的答案,但我想不通。有人可以帮我解决这个问题吗?如何在我的 JavaScript 中实例化处理实例?
我尝试在我的javascript中使用getInstanceById(...),但它说该方法在错误控制台中未定义。
任何帮助不胜感激,谢谢!~迈克希尼
困惑 - 我以为你的.pde文件基本上是Javascript!
无论如何:看这里:
* http://js.processing.org/reference/articles/jsQuickStart#writingpureprocessingcode
编写结合了处理和 JavaScript 代码的文档
人们在处理中问的第一个问题.js是 他们可以从处理草图中读取值 正在运行,反之亦然。答案是肯定的。
处理.js将处理代码转换为包含在 函数闭包。您创建的变量和函数不是 附加到全局对象(即窗口)。但是,您仍然可以 访问它们。
从处理中访问 JavaScript 对象
由于处理代码被转换为JavaScript并像任何代码一样运行 其他函数,所有处理代码都可以访问全局对象。 这意味着,如果您在全局中创建变量或函数 脚本块,它们可自动访问处理。
要从 javascript 访问处理,您必须对 canvas
html 元素设置id
:
<canvas id="my-sketch" data-processing-sources="sketch.pde"></canvas>
然后使用 getInstanceById
方法访问它:
var p = Processing.getInstanceById('my-sketch');
p.background(0);
p.redraw();
...