demos.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. $(function () {
  2. window.onerror = function (message, url, lineNo) {
  3. alert("Error: " + message + "\n" + "URL: " + url + "\nLine: " + lineNo);
  4. }
  5. spineDemos.init();
  6. var demos = [
  7. spritesheetsDemo,
  8. imageChangesDemo,
  9. transitionsDemo,
  10. meshesDemo,
  11. skinsDemo,
  12. hoverboardDemo,
  13. additiveBlendingDemo,
  14. vineDemo,
  15. stretchymanDemo,
  16. clippingDemo,
  17. tankDemo,
  18. transformsDemo
  19. ];
  20. var placeholders = document.getElementsByClassName("aspect");
  21. for (var i = 0; i < demos.length; i++)
  22. spineDemos.addDemo(demos[i], placeholders[i]);
  23. function resizeSliders () {
  24. $(".slider").each(function () {
  25. $(this).data("slider").resized();
  26. });
  27. }
  28. function windowResized () {
  29. // Keep canvas from taking up whole screen.
  30. $(".aspect").each(function () {
  31. $(this).css("padding-bottom", Math.min(70.14, $(window).height() * 0.75 / $(this).width() * 100) + "%");
  32. });
  33. // Swap controls when media query puts text below canvas.
  34. var below = $("#below").is(':visible');
  35. $(".demo .description").each(function () {
  36. var description = $(this);
  37. var controls = description.children(".controls");
  38. if (below || description.hasClass("fullsize"))
  39. description.prepend(controls);
  40. else
  41. description.append(controls);
  42. });
  43. resizeSliders();
  44. }
  45. windowResized();
  46. $(window).resize(windowResized);
  47. $(".resize").click(function () {
  48. var resizeButton = $(this);
  49. var container = resizeButton.parent();
  50. var parent = container.parent();
  51. var overlayLabels = parent.find(".overlay-label");
  52. var description = parent.children(".description");
  53. var controls = description.children(".controls");
  54. container.toggleClass("fullsize");
  55. resizeButton.toggleClass("checked");
  56. var offset = parseFloat(overlayLabels.css("bottom"));
  57. description.toggleClass("fullsize");
  58. if (description.hasClass("fullsize")) {
  59. overlayLabels.css("bottom", offset * 1.666);
  60. } else {
  61. resizeSliders();
  62. overlayLabels.css("bottom", offset / 1.666);
  63. }
  64. setTimeout(function() {
  65. windowResized();
  66. }, 500);
  67. });
  68. $(".checkbox-overlay").change(function () {
  69. $(this).closest(".demo").find(".overlay").toggleClass("overlay-hide");
  70. });
  71. });