sandbox.js 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. var engine;
  2. (function () {
  3. "use strict";
  4. WinJS.UI.Pages.define("/pages/sandbox/sandbox.html", {
  5. // This function is called whenever a user navigates to this page. It
  6. // populates the page elements with the app's data.
  7. ready: function (element, options) {
  8. var canvas = element.querySelector("#babylonCanvas");
  9. engine = new BABYLON.Engine(canvas);
  10. var container = canvas.parentElement;
  11. var htmlInput = element.querySelector("#fileInput");
  12. var sandboxInfos = element.querySelector("#sandboxInfos");
  13. var loadingBack = element.querySelector("#loadingBack");
  14. var loadingText = element.querySelector("#loadingText");
  15. var filesInput = new BABYLON.FilesInput(engine, null, canvas, function (sceneFile, scene) {
  16. if (!scene.activeCamera) {
  17. scene.activeCamera = new BABYLON.ArcRotateCamera("DefaultCamera", -Math.PI / 2, Math.PI / 2, 10, new BABYLON.Vector3.Zero(), scene);
  18. scene.activeCamera.zoomOn();
  19. scene.activeCamera.attachControl(canvas);
  20. }
  21. if (scene.lights.length == 0) {
  22. var light = new BABYLON.HemisphericLight("Default light", new BABYLON.Vector3(0, 1, 0), scene);
  23. }
  24. loadingBack.className = "loadingBack";
  25. loadingText.className = "loadingText";
  26. }, function (evt) {
  27. if (evt.lengthComputable) {
  28. loadingText.innerHTML = "Loading, please wait..." + (evt.loaded * 100 / evt.total).toFixed() + "%";
  29. } else {
  30. dlCount = evt.loaded / (1024 * 1024);
  31. loadingText.innerHTML = "Loading, please wait..." + Math.floor(dlCount * 100.0) / 100.0 + " MB already loaded.";
  32. }
  33. }, null, null, function () {
  34. loadingBack.className = "";
  35. loadingText.className = "";
  36. loadingText.innerHTML = "Loading, please wait...";
  37. });
  38. htmlInput.addEventListener("change", filesInput.loadFiles, false);
  39. var navBar = document.body.querySelector("#navbar").winControl;
  40. navBar.show();
  41. },
  42. unload: function () {
  43. engine.stopRenderLoop();
  44. engine.dispose();
  45. engine = null;
  46. }
  47. });
  48. })();