2

解析Processing.js代码后,我想调用一些函数或更改一些变量。目前唯一的方法是操作源代码,然后将源重新加载到处理中。

4

1 回答 1

1

我开始怀疑这个问题目前没有直接的答案。就目前而言,我正在和你一样做。我正在使用 Django Web 框架。我让 Django 通过其模板处理程序将每一行 Processing.js 代码写入页面。Django 首先编写 HTML 脚本元素,然后是定义草图参数的 Processing.js 赋值语句,然后是草图的主体代码,然后是特定草图所需的 Processing.js 库函数和类,然后是结束脚本标记。我正在遍历多个草图并完成一个循环初始化例程。

通过这个方案,我可以很好地控制 HTML,因为 Django 的模板处理程序让我可以控制包含草图和画布元素的 div 元素的 id 和类。这相当于粗略的动态行为;每次用户发布表单时,草图都会更新。Python 正在读取大量文件,每个文件都包含很多位,并且这些位在到达浏览器的过程中会经过几手,与简单的数据更新相比,这必须减慢速度。

我对使用可能由 jQuery 介导的表单实现真正的客户端动态行为的可能性很感兴趣。请参阅David Yeiser 在 Design Intellection 上的这篇引人入胜的帖子。所以,jQuery 可以与 Processing.js 对话,这很了不起,但也不算太奇怪,因为它们都是 JavaScript。我不是专家,但我认为这种技术会发生一些全局名称空间滥用。说到全局命名空间滥用,请查看Irrational Exuberance上的这两篇文章,“通过 Ajax 更新 Processing.js 图形”和“使用 Javascript 控制处理”。如果你可以用 PHP 来做,你可以用你选择的风格来做。

显然,Processing.js 有一个可能对您有用的“内部”AJAX 函数。请参阅此缓存帖子,由 Google 提供。与当前经过彻底编辑的版本相比,几天前才更改。因此,Processing.js 的合作者已经完成了加载草图并将其与画布相关联的任务,只需两行代码,但加载各种零碎(包括可变数据)的更一般任务是没有播出时间。也许他们正在重写整个 AJAX。我想知道是否可以使用 p.ajax 函数以灵活的方式加载和连接多个 Processing.js 资产,如数据分配、setup()、draw() 以及函数和类,从而形成一个完整的草图。

我的 CS 儿子说我可以使用 JavaScript 本机 API 重新编写我的 Processing.js 代码,然后它将是纯 JavaScript,并且可以使用普通脚本标签而不是 type="application/processing" 加载。他认为我会拥有更大的灵活性以及使用最小化/混淆的选项。这是ProDevTips 中使用 JSON的示例。JSON 与 Django 一起使用非常方便。我在网上到处都看到过 API。它看起来很简单,但我不知道它是否记录在任何地方。你可以在 Github 上挑选源代码。否则,我喜欢这种方法。

所以,我没有一个简洁的答案,但我怀疑情况正在迅速发展。最后一种可能性是使用 XHR。请参阅此StackOverflow 帖子以及 Hyper-Metrix 网站上可下载文件的链接。一个著名的 Processing.js 专家 Alistair MacDonald (F1LT3R) 发布了许多初始化 Processing.js 草图的方法。他可能和任何人一样知道如何做我们想做的事。

如果一个消息灵通的人(即 Processing.js 内部人员)能解决这个问题,我会非常高兴。

于 2009-11-13T21:34:13.483 回答