【问题标题】:Processing Javascript in external file处理外部文件中的 Javascript
【发布时间】:2016-03-07 14:17:08
【问题描述】:

这个问题听起来很直接,但我无法在任何可行的地方找到答案。 Processing 是一个 java ide,你可以下载一个将它转换为 javascript 的文件。到目前为止我有

<script src="processing.js"></script>

在头标签中,这是将其转换为 javascript 的文件。

然后我用

<script type="application/processing">
    void setup() 
    {
        size(700, 600);
        background(200);
    }
</script><canvas width="700" height="600"></canvas>

它显示一个空白的灰色背景,700 x 600 就像代码所说的那样。

有谁知道我将如何将代码放入外部文档并从那里运行它?我尝试将代码保存为 javascript 文件,并尝试从实际的 .pde 文件(处理)中运行它。没有任何效果。

【问题讨论】:

  • 我试图将您的代码移动到一个单独的文件中,但我得到的只是 chrome 中的跨域错误。按照他们有here / 使用Javascript编写处理代码的示例,我能够将脚本代码移出一个单独的js文件并且仍然可以工作。然后我在我的 html 页面中简单地将它称为 &lt;script src="myScript.js" type="text/javascript"&gt;&lt;/script&gt;

标签: javascript java html processing processing.js


【解决方案1】:

Processing.js reference 涵盖了这一点。

您可以简单地将代码放入.pde 文件(处理IDE 使用的文件类型)。 Processing.js 会为你编译成 JavaScript:

<!DOCTYPE html>
<html>
 <head>
   <title>Hello Web - Processing.js Test</title>
   <script src="processing-1.3.6.min.js"></script>
 </head>
 <body>
   <h1>Processing.js Test</h1>
   <p>This is my first Processing.js web-based sketch:</p>
   <canvas data-processing-sources="hello-web.pde"></canvas>
  </body>
</html>

或者您可以直接编写 JavaScript,然后将其包含在单独的 .js 文件中:

在单独的文件中:

function sketchProc(processing) {
   // Override draw function, by default it will be called 60 times per second
   processing.draw = function() {
     // determine center and max clock arm length
     var centerX = processing.width / 2, centerY = processing.height / 2;
     var maxArmLength = Math.min(centerX, centerY);

     function drawArm(position, lengthScale, weight) {
       processing.strokeWeight(weight);
       processing.line(centerX, centerY,
         centerX + Math.sin(position * 2 * Math.PI) * lengthScale * maxArmLength,
         centerY - Math.cos(position * 2 * Math.PI) * lengthScale * maxArmLength);
     }

     // erase background
     processing.background(224);

     var now = new Date();

     // Moving hours arm by small increments
     var hoursPosition = (now.getHours() % 12 + now.getMinutes() / 60) / 12;
     drawArm(hoursPosition, 0.5, 5);

     // Moving minutes arm by small increments
     var minutesPosition = (now.getMinutes() + now.getSeconds() / 60) / 60;
     drawArm(minutesPosition, 0.80, 3);

     // Moving hour arm by second increments
     var secondsPosition = now.getSeconds() / 60;
     drawArm(secondsPosition, 0.90, 1);
   };
 }

在您的 html 文件中:

 var canvas = document.getElementById("canvas1");
 // attaching the sketchProc function to the canvas
 var processingInstance = new Processing(canvas, sketchProc);

【讨论】:

  • 感谢您的帮助,第一个不起作用,它没有显示我的处理文件。我已将您的中间代码放入 js 文件中,但不确定如何将其链接到我的 html。你说把底部的代码放在 html 中,但我认为它的 javascript
  • @Will 代码的底部是 JavaScript。我会将它放在您的 html 文件中的脚本标记中,或者它可以放在单独的文件中。对于第一个,我需要比“它没有显示”更多的信息。你的 JavaScript 控制台说什么?
  • 感谢您的帮助。我得到的错误很长,所以我把它截图了,我希望没关系,如果不是生病的话,把它打出来[链接]gyazo.com/22cc5cdb2ba61d9e5b8da26c8a0657d1
  • 也是我把它放在我的 html 脚本标签中的第二种方式,但似乎仍然没有工作,我在控制台中没有错误。你能确认我正确编码吗?我将 js 作为 Car.js 保存在同一个文件中。 [链接]gyazo.com/7478139a9e6293ff30e058080ebebc7a
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-22
  • 1970-01-01
  • 1970-01-01
  • 2012-04-16
  • 2011-02-15
  • 2011-12-13
  • 2011-07-11
相关资源
最近更新 更多