【问题标题】:Exporting a Processing Application to Web Processing IDE将处理应用程序导出到 Web 处理 IDE
【发布时间】:2014-02-18 17:54:29
【问题描述】:

我正在与Processing 合作,尝试为美国拥有健康保险的人数开发一个简单的数据可视化应用程序。

我的草图在我的机器上本地工作,但我尝试使用处理 IDE 中可用的 Javascript 模式将其导出到网络。

会生成一个文件夹,其中包含许多文件,包括 HTML 页面和草图的 JS 文件。但是,当我尝试从 LocalHost 加载页面时出现此错误

Uncaught Processing.js: Unable to execute pjs sketch: ReferenceError: ListstateMarkers is not defined 

我的 Sketch(Java)的全部代码在这里:

UnfoldingMap map;

List<Marker>stateMarkers;
List<Feature>states;

void setup() {
  size(800, 600);
  smooth();
  map = new UnfoldingMap(this);
  MapUtils.createDefaultEventDispatcher(this, map);
  states = GeoJSONReader.loadData(this, "ushealthinsurance2005.json");
  stateMarkers = MapUtils.createSimpleMarkers(states);
  stateMarkers = MapUtils.createSimpleMarkers(states);
  map.addMarkers(stateMarkers);
}

void draw() {
  map.draw();
  for (int i = 0; i < stateMarkers.size(); i++) {
    Marker state = stateMarkers.get(i);
    //Get information when mouse over a county.
    if (state.isInside(map, mouseX, mouseY)) {
      state.setColor(color(255, 0, 0));
    }
    else {
      state.setColor(color(0, 0, 255));
    }
  }
}

我应该指出我也在使用地图库Unfolding 来生成地图图块并向应用程序添加交互性。

有人知道这里会发生什么吗?这是 IDE 本身的故障吗?有没有人遇到过类似的问题?

从 JS 文件中抛出错误的行是这一行:

   throw "Processing.js: Unable to execute pjs sketch: " + e;

生成的代码超过 10,000 行,因此很难实际调试问题。

感谢有关此问题的任何建议或帮助。

【问题讨论】:

  • 我不知道 Unfolding 库,但是如果您使用任何具有 Java 依赖项的库,那么它们将不会在 Javascript 上运行,从而给您一个 Reference not defined... 错误。您将不得不为这些库找到 Javascript 替代品。看到您有大约 10,000 行代码,并且如果您使用 Java 库编写程序,那么您可能需要做很多事情来修改所有内容。因此,在您进行任何更改之前,我会浏览互联网。您可以在处理论坛上找到相关帖子。
  • @NicolásCarlo 是对的 Unfolding 是一个 java 库,在 js 模式下不起作用。除了他的建议,您还可以考虑导出一个小程序。可以在浏览器中工作,但有很多吓人的警告......

标签: javascript java processing processing.js processing-ide


【解决方案1】:

你不能在 JavaScript 中使用 Java 库,所以你不能在 Processing.js 中使用它们。

您有三个选择:

选项 1: 找到一个做同样事情的 JavaScript 库。不幸的是,Unfolding Maps does not support JavaScript,所以你必须使用别的东西。 GoogleMaps API 可能值得一试。 如果您想将应用程序嵌入网站,这是唯一真正的选择。

选项 2: 部署为可运行的 jar。您可以使用 JarMatey 之类的东西(注意:我写了 JarMatey)将您的 Processing 草图打包为一个自解压的可运行 jar。您将无法将其嵌入网页中,但您可以使用 Java Web Start 来更轻松地通过网络进行部署。

选项 3: 部署为打包的可执行文件。处理可以导出应用程序,但它们需要库目录而不是作为单个文件出现。相反,您可以创建一个可运行的 jar,然后使用 JWrapper 之类的东西来创建一个单文件可执行文件。

注意:部署为小程序并不是一个真正的选择。小程序几乎已经死了,它们对你和你的用户来说都是一个巨大的痛苦。 Java 9 将弃用 Applet。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-13
    • 1970-01-01
    • 2012-09-01
    相关资源
    最近更新 更多