在网站上发布(多个)PlayCanvas应用程序

时间:2018-04-03 15:34:44

标签: javascript playcanvas

我在网站上发布我的PlayCanvas应用程序时遇到了问题。这些网站将包含用于控制PlayCanvas应用程序的ui元素。

  1. 我想在特定div中发布PC应用程序(画布)。怎么做?
  2. 我的网站必须包含多个(两个)PlayCanvas应用程序(是的,这是必要的)。与第一个一样,有一个div容器,应该加载它。
  3. 我需要访问这两个应用程序以向他们发送事件,如下例或其他任何方式:
  4. `

    btn_doSomething.addEventListener('click', function() {
        app1.fire("DoSomething", "Value");
        app2.fire("DoSomethingElse", "Value");
    });
    

1 个答案:

答案 0 :(得分:1)

我找到了一个适合我的解决方案。我已经发布了一个网站,上面有两个PlayCanvas“应用程序”,并通过脚本与它们进行交互。 该解决方案建议将PlayCanvas应用程序保持在<div id="app1-wrapper"> <iframe id="app1-iframe" src="myApp1/index.html" frameborder="0"></iframe> </div> <div id="app2-wrapper"> <iframe id="app2-iframe" src="myApp2/index.html" frameborder="0"></iframe> </div> 。因此,您可以自己托管应用程序或让PlayCanvas为您执行此操作。另一个优点是您不必在导出的项目中更改任何内容。

所以 HTML 部分非常简单:

iframes

JavaScript 中,我从 var app1_iframe = document.getElementById("app1-iframe").contentWindow; var app1 = app1_iframe.pc.Application.getApplication("application-canvas"); var app2_iframe = document.getElementById("app2-iframe").contentWindow; var app2 = app2_iframe.pc.Application.getApplication("application-canvas"); 获取应用并将其保存在变量中:

app1.fire('myFunctionName',value);
app2.fire('myFunctionName',value);

现在您可以访问该应用程序,并且可以运行所有功能。对我来说,我正在向我的剧本发射事件。请记住,您必须在PlayCanvas应用程序中为它们创建侦听器。

xargs -d $'\n' -P2 -n2 \
  /bin/bash -c '
    for arg do
      if curl --fail -I "http://localhost/$arg" &>/dev/null; then
        printf "%s,Online\n" "$arg"
      else
        printf "%s,Offline\n" "$arg"
      fi
    done
  ' _ >>healthcheck.log <URI.csv

就是这样!我认为非常简单且非常灵活!