demos.html 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353
  1. <!DOCTYPE html><html><head>
  2. <meta charset="utf-8">
  3. <title>Spine: Demos</title>
  4. <link rel="stylesheet" href="demos.css">
  5. <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
  6. <script src="../../build/spine-webgl.js"></script>
  7. <script src="utils.js"></script>
  8. <script src="spritesheets.js"></script>
  9. <script src="imagechanges.js"></script>
  10. <script src="transitions.js"></script>
  11. <script src="meshes.js"></script>
  12. <script src="skins.js"></script>
  13. <script src="hoverboard.js"></script>
  14. <script src="vine.js"></script>
  15. <script src="clipping.js"></script>
  16. <script src="stretchyman.js"></script>
  17. <script src="tank.js"></script>
  18. <script src="transforms.js"></script>
  19. <script src="additiveblending.js"></script>
  20. <script src="demos.js"></script>
  21. </head>
  22. <body>
  23. <div id="demos" class="demos-page">
  24. <div class="demo">
  25. <div>
  26. <div>
  27. <h2 id="Spine-versus-sprites-sheets"><a href="#Spine-versus-sprite-sheets">Spine versus sprite sheets</a></h2>
  28. <div class="demo-container">
  29. <div class="aspect"></div>
  30. <div class="resize"></div>
  31. <div id="spritesheets-overlay" class="overlay-hide">
  32. <div class="overlay-label" style="width:50%"><b>Spine</b><br><span class="hide-small">All animations, all frame rates<br></span><b>0.18 MB</b></div>
  33. <div class="overlay-label" style="left:50%;width:50%"><b>Sprite sheet</b><br><span class="hide-small">1 second of animation @ 30FPS<br></span><b>3.39 MB = 18x larger!</b></div>
  34. </div>
  35. </div>
  36. <div class="demo-text">
  37. <div class="controls">
  38. <div class="control" style="padding-bottom:0px">
  39. <div class="control-label"><span>Animation speed</span></div>
  40. <div class="slidervalue" id="spritesheets-timeslider-label">&nbsp;</div>
  41. <div class="slider filled" id="spritesheets-timeslider"></div>
  42. </div>
  43. <div class="control" style="margin:0">
  44. <div>
  45. <button id="spritesheets-roar" class="btn unit-50">Roar</button>
  46. <button id="spritesheets-jump" class="btn unit-50">Jump</button>
  47. </div>
  48. </div>
  49. </div>
  50. </div>
  51. </div>
  52. </div>
  53. </div>
  54. <div class="demo">
  55. <div>
  56. <div>
  57. <h2 id="Spine-with-frame-based-animation"><a href="#Spine-with-frame-based-animation">Spine with frame-based animation</a></h2>
  58. <div class="demo-container">
  59. <div class="aspect"></div>
  60. <table class="timeline layout"><tr>
  61. <td><div id="imagechanges-playbutton" class="pause"></div></td>
  62. <td><div class="slider" id="imagechanges-timeline"></div></td>
  63. </tr></table>
  64. <div class="resize"></div>
  65. </div>
  66. <div class="demo-text">
  67. <div class="controls">
  68. <div class="control">
  69. <label>Select a skeleton:</label>
  70. <div class="select-container">
  71. <select id="imagechanges-skeleton" size="2"></select>
  72. </div>
  73. </div>
  74. </div>
  75. </div>
  76. </div>
  77. </div>
  78. </div>
  79. <div class="demo">
  80. <div>
  81. <div>
  82. <h2 id="Transitions-and-layering"><a href="#Transitions-and-layering">Transitions and layering</a></h2>
  83. <div class="demo-container">
  84. <div class="aspect"></div>
  85. <div id="transitions-overlay" class="overlay-hide">
  86. <div class="overlay-label" style="left:25%;"><b>Smooth</b></div>
  87. <div class="overlay-label" style="right:30%;"><b>Abrupt</b></div>
  88. </div>
  89. <div class="resize"></div>
  90. </div>
  91. <div class="demo-text">
  92. <div class="controls">
  93. <div class="control" style="margin:0">
  94. <div>
  95. <button id="transitions-die" class="btn unit-50">Die</button>
  96. </div>
  97. </div>
  98. <div class="control" style="padding-bottom:0px">
  99. <div class="control-label"><span>Animation speed</span></div>
  100. <div class="slidervalue" id="transitions-timeslider-label">&nbsp;</div>
  101. <div class="slider filled" id="transitions-timeslider"></div>
  102. </div>
  103. </div>
  104. </div>
  105. </div>
  106. </div>
  107. </div>
  108. <div class="demo" id="demo-mesh-deformations">
  109. <div>
  110. <div>
  111. <h2 id="Mesh-deformations"><a href="#Mesh-deformations">Mesh deformation</a></h2>
  112. <div class="demo-container">
  113. <div class="aspect"></div>
  114. <table class="timeline layout"><tr>
  115. <td><div id="meshes-playbutton" class="pause"></div></td>
  116. <td><div class="slider" id="meshes-timeline"></div></td>
  117. </tr></table>
  118. <div class="resize"></div>
  119. </div>
  120. <div class="demo-text">
  121. <div class="controls">
  122. <div class="control" style="padding-bottom:0">
  123. <label>Select a character:</label>
  124. <div class="select-container">
  125. <select id="meshes-skeleton" size="3"></select>
  126. </div>
  127. </div>
  128. <div class="control" style="width:50%; display:inline-block; float:left; padding-bottom:6px">
  129. <div class="checkbox">
  130. <input type="checkbox" id="meshes-drawbonescheckbox" name="check">
  131. <label for="meshes-drawbonescheckbox"></label>
  132. </div>
  133. <span style="cursor:pointer" onclick="$('#meshes-drawbonescheckbox').click()">Show bones</span>
  134. </div>
  135. <div class="control" style="width:50%; display:inline-block; padding-bottom:6px">
  136. <div class="checkbox">
  137. <input type="checkbox" id="meshes-drawmeshtrianglescheckbox" name="check">
  138. <label for="meshes-drawmeshtrianglescheckbox"></label>
  139. </div>
  140. <span style="cursor:pointer" onclick="$('#meshes-drawmeshtrianglescheckbox').click()">Show triangles</span>
  141. </div>
  142. </div>
  143. </div>
  144. </div>
  145. </div>
  146. </div>
  147. <div class="demo" id="demo-skins">
  148. <div>
  149. <div>
  150. <h2 id="Skins"><a href="#Skins">Skins</a></h2>
  151. <div class="demo-container">
  152. <div class="aspect"></div>
  153. <div class="resize"></div>
  154. </div>
  155. <div class="demo-text">
  156. <div class="controls">
  157. <div class="control">
  158. <label>Select a skin:</label>
  159. <div class="select-container">
  160. <select id="skins-skin"></select>
  161. </div>
  162. </div>
  163. <div class="control" style="margin:0">
  164. <div>
  165. <button id="skins-randomizeattachments" class="btn unit-50">Randomize</button>
  166. <button id="skins-swingsword" class="btn unit-50">Swing Sword</button>
  167. </div>
  168. </div>
  169. <div class="control" style="padding-bottom:6px; padding-top:10px">
  170. <div class="checkbox">
  171. <input type="checkbox" id="skins-randomizeskins" name="check" checked="true">
  172. <label for="skins-randomizeskins"></label>
  173. </div>
  174. <span style="cursor:pointer" onclick="$('#skins-randomizeskins').click()">Random skins</span>
  175. </div>
  176. </div>
  177. </div>
  178. </div>
  179. </div>
  180. </div>
  181. <div class="demo" id="demo-ik-constraint">
  182. <div>
  183. <div>
  184. <h2 id="Inverse-kinematics"><a href="#Inverse-kinematics">Inverse kinematics</a></h2>
  185. <div class="demo-container">
  186. <div class="aspect"></div>
  187. <div class="resize"></div>
  188. </div>
  189. <div class="demo-text">
  190. <div class="controls">
  191. <div class="control" style="margin:0">
  192. <div>
  193. <button id="hoverboard-shoot" class="btn unit-50">Shoot</button>
  194. <button id="hoverboard-jump" class="btn unit-50">Jump</button>
  195. </div>
  196. </div>
  197. <div class="control" style="width:50%; display:inline-block; float:left; padding-bottom:6px">
  198. <div class="checkbox">
  199. <input type="checkbox" id="hoverboard-aim" name="check">
  200. <label for="hoverboard-aim"></label>
  201. </div>
  202. <span style="cursor:pointer" onclick="$('#hoverboard-aim').click()">Aim</span>
  203. </div>
  204. <div class="control" style="width:50%; display:inline-block; padding-bottom:6px">
  205. <div class="checkbox">
  206. <input type="checkbox" id="hoverboard-drawbones" name="check">
  207. <label for="hoverboard-drawbones"></label>
  208. </div>
  209. <span style="cursor:pointer" onclick="$('#hoverboard-drawbones').click()">Show bones</span>
  210. </div>
  211. </div>
  212. </div>
  213. </div>
  214. </div>
  215. </div>
  216. <div class="demo" id="demo-additive-blending">
  217. <div>
  218. <div>
  219. <h2 id="Additive-blending"><a href="#Additive-blending">Additive Blending</a></h2>
  220. <div class="demo-container">
  221. <div class="aspect"></div>
  222. <div class="resize"></div>
  223. </div>
  224. <div class="demo-text">
  225. <div class="controls">
  226. <div class="control" style="padding-bottom:6px">
  227. </div>
  228. </div>
  229. </div>
  230. </div>
  231. </div>
  232. </div>
  233. <div class="demo" id="demo-path-constraint">
  234. <div>
  235. <div>
  236. <h2 id="Path-constraints"><a href="#Path-constraints">Path constraints</a></h2>
  237. <div class="demo-container">
  238. <div class="aspect"></div>
  239. <table class="timeline layout"><tr>
  240. <td><div id="vine-playbutton" class="pause"></div></td>
  241. <td><div class="slider" id="vine-timeline"></div></td>
  242. </tr></table>
  243. <div class="resize"></div>
  244. </div>
  245. <div class="demo-text">
  246. <div class="controls">
  247. <div class="control" style="padding-bottom:6px">
  248. <div class="checkbox">
  249. <input type="checkbox" id="vine-drawbones" name="check">
  250. <label for="vine-drawbones"></label>
  251. </div>
  252. <span style="cursor:pointer" onclick="$('#vine-drawbones').click()">Show bones &amp; paths</span>
  253. </div>
  254. </div>
  255. </div>
  256. </div>
  257. <div>
  258. <div class="demo-container">
  259. <div class="aspect"></div>
  260. <div class="resize"></div>
  261. </div>
  262. <div class="demo-text">
  263. <div class="controls">
  264. <div class="control" style="padding-bottom:6px">
  265. <div class="checkbox">
  266. <input type="checkbox" id="stretchyman-drawbones" name="check">
  267. <label for="stretchyman-drawbones"></label>
  268. </div>
  269. <span style="cursor:pointer" onclick="$('#stretchyman-drawbones').click()">Show bones &amp; paths</span>
  270. </div>
  271. </div>
  272. </div>
  273. </div>
  274. </div>
  275. </div>
  276. <div class="demo" id="demo-clipping">
  277. <div>
  278. <div>
  279. <h2 id="Clipping"><a href="#Clipping">Clipping</a></h2>
  280. <div class="demo-container">
  281. <div class="aspect"></div>
  282. <table class="timeline layout"><tr>
  283. <td><div id="clipping-playbutton" class="pause"></div></td>
  284. <td><div class="slider" id="clipping-timeline"></div></td>
  285. </tr></table>
  286. <div class="resize"></div>
  287. </div>
  288. <div class="demo-text">
  289. <div class="controls">
  290. <div class="control" style="padding-bottom:6px">
  291. <div class="checkbox">
  292. <input type="checkbox" id="clipping-drawtriangles" name="check">
  293. <label for="clipping-drawtriangles"></label>
  294. </div>
  295. <span style="cursor:pointer" onclick="$('#clipping-drawtriangles').click()">Show triangles</span>
  296. </div>
  297. </div>
  298. </div>
  299. </div>
  300. </div>
  301. </div>
  302. <div class="demo" id="demo-transform-constraint">
  303. <div>
  304. <div>
  305. <h2 id="Transform-constraints"><a href="#Transform-constraints">Transform constraints</a></h2>
  306. <div class="demo-container">
  307. <div class="aspect"></div>
  308. <table class="timeline layout"><tr>
  309. <td><div id="tank-playbutton" class="pause"></div></td>
  310. <td><div class="slider" id="tank-timeline"></div></td>
  311. </tr></table>
  312. <div class="resize"></div>
  313. </div>
  314. <div class="demo-text">
  315. <div class="controls">
  316. <div class="control" style="padding-bottom:6px">
  317. <div class="checkbox">
  318. <input type="checkbox" id="tank-drawbones" name="check">
  319. <label for="tank-drawbones" id="tank-drawbones-label"></label>
  320. </div>
  321. <span style="cursor:pointer" onclick="$('#tank-drawbones').click()">Show bones &amp; paths</span>
  322. </div>
  323. </div>
  324. </div>
  325. </div>
  326. <div>
  327. <div class="demo-container">
  328. <div class="aspect"></div>
  329. <div class="resize"></div>
  330. </div>
  331. <div class="demo-text">
  332. <div class="controls">
  333. <div class="control" style="padding-bottom:0px">
  334. <div class="control-label"><span>Rotation offset</span></div>
  335. <div class="slidervalue" id="transforms-rotationoffset-label">&nbsp;</div>
  336. <div class="slider filled" id="transforms-rotationoffset"></div>
  337. </div>
  338. <div class="control" style="padding-bottom:0px">
  339. <div class="control-label"><span>Translation mix</span></div>
  340. <div class="slidervalue" id="transforms-translationmix-label">&nbsp;</div>
  341. <div class="slider filled" id="transforms-translationmix"></div>
  342. </div>
  343. </div>
  344. </div>
  345. </div>
  346. </div>
  347. </div>
  348. </div>
  349. </body></html>