我在网站上发布我的PlayCanvas应用程序时遇到了问题。这些网站将包含用于控制PlayCanvas应用程序的ui元素。
`
btn_doSomething.addEventListener('click', function() {
app1.fire("DoSomething", "Value");
app2.fire("DoSomethingElse", "Value");
});
答案 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
就是这样!我认为非常简单且非常灵活!