运行 同一页面上有 2 个 Emscripten 脚本

Running 2 Emscripten scripts on the same page

我正在制作一个使用 emscripten 编译代码的应用程序。它首先用一个脚本解析一个文件,而页面下载一个 Unity 播放器为 HTML5.

编译的脚本

但我希望能够用另一个文件再次调用解析器。所以我希望能够同时调用这两个脚本。

我用 Module.run()

来称呼它们

如何避免两个脚本之间的冲突?

Emscripten 输出是一个平面脚本。这意味着如果它在全局范围内,它使用全局变量。

要有多个脚本,只需将每个脚本放在一个函数中,这样所有变量现在都具有函数局部作用域,而全局作用域不会受到污染。像这样:

function moduleOne() {
  var Module = { }; // add and Module adjustments here, or leave empty
  // .. emscripten output for this module //
  return Module; // will have exported functions added to it
}

var m1 = moduleOne();

Module 是必需的,因为如果未定义,emscripten 将定义它(全局)。