javascript - 有没有办法通过 Javascript 操作 Processing.js 生成的代码?

标签 javascript canvas processing

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

最佳答案

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

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

我对使用可能由 jQuery 介导的表单实现真正的客户端动态行为的可能性很感兴趣。看这个fascinating post在 David Yeiser 的 Design Intellection 中。所以,jQuery 可以与 Processing.js 对话,这很了不起,但也不足为奇,因为它们都是 JavaScript。我不是专家,但我认为这种技术会导致一些全局 namespace 滥用。说到全局 namespace 滥用,请查看 Irrational Exuberance 上的这两篇文章,“Updating Processing.js Graphics via Ajax,”和“Using Javascript to Control Processing”。如果您可以使用 PHP 来完成,那么您可以使用您选择的风格来完成。

显然,Processing.js 有一个可能对您有用的“内部”AJAX 函数。看这个cached post ,礼貌谷歌。与当前比较 radically edited version , 就在几天前改变了。因此,Processing.js 合作者已经完成了加载草图并将其与 Canvas 相关联的任务,只需两行代码,但加载各种零碎片段(包括可变数据)的更一般任务没有播出时间。也许他们正在重写整个 AJAX。我想知道 p.ajax 函数是否可以用于以灵活的方式加载和连接许多 Processing.js Assets ,如数据分配、setup()、draw() 以及函数和类,从而形成一个完整的草图。

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

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

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

关于javascript - 有没有办法通过 Javascript 操作 Processing.js 生成的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/837294/

相关文章:

java - 在单击位置绘制新圆圈,同时保存以前的圆圈

javascript - 如何在 javascript 对象上进行匹配和替换

javascript - 我如何使用 JavaScript 判断 DOM 对象是否在窗口之外?

java - onDraw 无法正常工作

javascript - 点击事件后 Canvas 消失

algorithm - 线段交叉实现

java - 如何在处理过程中使用 for 循环输出多个图像?

javascript - Chart.js 子标签

javascript - 如何在云函数的循环内设置await表达式?

java - 在 Canvas 上看不到圆圈