12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- /**
- * Copyright (c) 2006-2015, JGraph Ltd
- * Copyright (c) 2006-2015, Gaudenz Alder
- */
- /**
- *
- * Class: mxAnimation
- *
- * Implements a basic animation in JavaScript.
- *
- * Constructor: mxAnimation
- *
- * Constructs an animation.
- *
- * Parameters:
- *
- * graph - Reference to the enclosing <mxGraph>.
- */
- function mxAnimation(delay)
- {
- this.delay = (delay != null) ? delay : 20;
- };
- /**
- * Extends mxEventSource.
- */
- mxAnimation.prototype = new mxEventSource();
- mxAnimation.prototype.constructor = mxAnimation;
- /**
- * Variable: delay
- *
- * Specifies the delay between the animation steps. Defaul is 30ms.
- */
- mxAnimation.prototype.delay = null;
- /**
- * Variable: thread
- *
- * Reference to the thread while the animation is running.
- */
- mxAnimation.prototype.thread = null;
- /**
- * Function: isRunning
- *
- * Returns true if the animation is running.
- */
- mxAnimation.prototype.isRunning = function()
- {
- return this.thread != null;
- };
- /**
- * Function: startAnimation
- *
- * Starts the animation by repeatedly invoking updateAnimation.
- */
- mxAnimation.prototype.startAnimation = function()
- {
- if (this.thread == null)
- {
- this.thread = window.setInterval(mxUtils.bind(this, this.updateAnimation), this.delay);
- }
- };
- /**
- * Function: updateAnimation
- *
- * Hook for subclassers to implement the animation. Invoke stopAnimation
- * when finished, startAnimation to resume. This is called whenever the
- * timer fires and fires an mxEvent.EXECUTE event with no properties.
- */
- mxAnimation.prototype.updateAnimation = function()
- {
- this.fireEvent(new mxEventObject(mxEvent.EXECUTE));
- };
- /**
- * Function: stopAnimation
- *
- * Stops the animation by deleting the timer and fires an <mxEvent.DONE>.
- */
- mxAnimation.prototype.stopAnimation = function()
- {
- if (this.thread != null)
- {
- window.clearInterval(this.thread);
- this.thread = null;
- this.fireEvent(new mxEventObject(mxEvent.DONE));
- }
- };
- __mxOutput.mxAnimation = typeof mxAnimation !== 'undefined' ? mxAnimation : undefined;
|