diff --git a/public/room.html b/public/room.html index 3f722f8316415602fa2975a62572040fbf51a455..a8c44617f575e7e8c943b2038ef6f603495395e8 100644 --- a/public/room.html +++ b/public/room.html @@ -25,7 +25,7 @@ networked-scene="adapter: janus; audio: true; debug: true; - onConnect: onConnect; + onConnect: App.onConnect; connectOnLoad: false;" mute-mic="eventSrc: a-scene; toggleEvents: action_mute"> @@ -89,7 +89,7 @@ </a-entity> </a-scene> <script> - document.querySelector('a-scene').addEventListener('loaded', onSceneLoad) + document.querySelector('a-scene').addEventListener('loaded', App.onSceneLoad) </script> </body> diff --git a/src/index.js b/src/index.js index 9485e8251258ea35b24f7822ea80b4823335a365..9cc589523e61a8e216713f379d27dd81d0d8a9ce 100644 --- a/src/index.js +++ b/src/index.js @@ -26,37 +26,41 @@ import Config from "./config"; registerNetworkScheams(); registerInputMappings(); -window.onSceneLoad = function() { - const qs = queryString.parse(location.search); - const scene = document.querySelector("a-scene"); - - scene.setAttribute("networked-scene", { - room: - qs.room && !isNaN(parseInt(qs.room)) - ? parseInt(qs.room) - : Config.default_room, - serverURL: Config.janus_server_url - }); - - if (!qs.stats || !/off|false|0/.test(qs.stats)) { - scene.setAttribute("stats", true); - } +window.App = { + onSceneLoad() { + const qs = queryString.parse(location.search); + const scene = document.querySelector("a-scene"); - if (AFRAME.utils.device.isMobile() || qs.gamepad) { - const playerRig = document.querySelector("#player-rig"); - playerRig.setAttribute("virtual-gamepad-controls", {}); - } + scene.setAttribute("networked-scene", { + room: + qs.room && !isNaN(parseInt(qs.room)) + ? parseInt(qs.room) + : Config.default_room, + serverURL: Config.janus_server_url + }); - let username = qs.name; - if (!username) { - username = promptForName(username); // promptForName is blocking - } - const myNametag = document.querySelector("#player-rig .nametag"); - myNametag.setAttribute("text", "value", username); + if (!qs.stats || !/off|false|0/.test(qs.stats)) { + scene.setAttribute("stats", true); + } - scene.components["networked-scene"].connect(); -}; + if (AFRAME.utils.device.isMobile() || qs.gamepad) { + const playerRig = document.querySelector("#player-rig"); + playerRig.setAttribute("virtual-gamepad-controls", {}); + } -window.onConnect = function() { - document.getElementById("loader").style.display = "none"; + let username = qs.name; + if (!username) { + username = promptForName(username); // promptForName is blocking + } + const myNametag = document.querySelector("#player-rig .nametag"); + myNametag.setAttribute("text", "value", username); + + document.body.addEventListener("connected", App.onConnect); + + scene.components["networked-scene"].connect(); + }, + + onConnect() { + document.getElementById("loader").style.display = "none"; + } }; diff --git a/src/lobby.js b/src/lobby.js index e4bb869b0e3ebe2dbe2c2193064263ace3797fef..dc84a820f69fa644bd1ac0025893f9c347a0a4fe 100644 --- a/src/lobby.js +++ b/src/lobby.js @@ -77,7 +77,7 @@ class Lobby extends React.Component { } const goToRoom = roomId => { - window.open(`room.html?room=${roomId}`, "_blank"); + window.open(`room.html?room=${roomId}`, "_self"); }; const goToNewRoom = () => {