mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2025-12-21 01:36:02 +08:00
38 lines
1.5 KiB
JavaScript
38 lines
1.5 KiB
JavaScript
var spineDemos;
|
|
(function(spineDemos) {
|
|
spineDemos.HOVER_COLOR_INNER = new spine.Color(0.478, 0, 0, 0.25);
|
|
spineDemos.HOVER_COLOR_OUTER = new spine.Color(1, 1, 1, 1);
|
|
spineDemos.NON_HOVER_COLOR_INNER = new spine.Color(0.478, 0, 0, 0.5);
|
|
spineDemos.NON_HOVER_COLOR_OUTER = new spine.Color(1, 0, 0, 0.8);
|
|
spineDemos.assetManager = new spine.SharedAssetManager("http://esotericsoftware.com/demos/exports/");
|
|
spineDemos.setupRendering = function (canvas, renderFunc) {
|
|
var isVisible = false;
|
|
|
|
function render () {
|
|
renderFunc();
|
|
if (isVisible) requestAnimationFrame(render);
|
|
};
|
|
|
|
function viewportCheck () {
|
|
var old = isVisible
|
|
isVisible = spineDemos.isElementInViewport(canvas);
|
|
if (isVisible && old != isVisible) requestAnimationFrame(render);
|
|
}
|
|
|
|
window.addEventListener("DOMContentLoaded", viewportCheck, false);
|
|
window.addEventListener("load", viewportCheck, false);
|
|
window.addEventListener("resize", viewportCheck, false);
|
|
window.addEventListener("scroll", viewportCheck, false);
|
|
|
|
viewportCheck();
|
|
requestAnimationFrame(render);
|
|
};
|
|
|
|
spineDemos.isElementInViewport = function (canvas) {
|
|
var rect = canvas.getBoundingClientRect();
|
|
var x = 0, y = 0;
|
|
var width = (window.innerHeight || document.documentElement.clientHeight);
|
|
var height = (window.innerWidth || document.documentElement.clientWidth);
|
|
return rect.left < x + width && rect.right > x && rect.top < y + height && rect.bottom > y;
|
|
};
|
|
})(spineDemos || (spineDemos = { })); |