UNPKG

cesium

Version:

Cesium is a JavaScript library for creating 3D globes and 2D maps in a web browser without a plugin.

52 lines (46 loc) 1.8 kB
/*global define*/ define([ './defined' ], function( defined) { 'use strict'; if (typeof window === 'undefined') { return; } var implementation = window.cancelAnimationFrame; (function() { // look for vendor prefixed function if (!defined(implementation)) { var vendors = ['webkit', 'moz', 'ms', 'o']; var i = 0; var len = vendors.length; while (i < len && !defined(implementation)) { implementation = window[vendors[i] + 'CancelAnimationFrame']; if (!defined(implementation)) { implementation = window[vendors[i] + 'CancelRequestAnimationFrame']; } ++i; } } // otherwise, assume requestAnimationFrame is based on setTimeout, so use clearTimeout if (!defined(implementation)) { implementation = clearTimeout; } })(); /** * A browser-independent function to cancel an animation frame requested using {@link requestAnimationFrame}. * * @exports cancelAnimationFrame * * @param {Number} requestID The value returned by {@link requestAnimationFrame}. * * @see {@link http://www.w3.org/TR/animation-timing/#the-WindowAnimationTiming-interface|The WindowAnimationTiming interface} */ function cancelAnimationFrame(requestID) { // we need this extra wrapper function because the native cancelAnimationFrame // functions must be invoked on the global scope (window), which is not the case // if invoked as Cesium.cancelAnimationFrame(requestID) implementation(requestID); } return cancelAnimationFrame; });