Mon 21 Jul 22:43:21 CEST 2025
This commit is contained in:
parent
7d2d9ddd30
commit
6d82f29654
92
js/ui/mxgraph/src/js/util/mxAnimation.js
Normal file
92
js/ui/mxgraph/src/js/util/mxAnimation.js
Normal file
|
@ -0,0 +1,92 @@
|
|||
/**
|
||||
* 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));
|
||||
}
|
||||
};
|
Loading…
Reference in New Issue
Block a user