reanimate-0.1.8.0: Animation library based on SVGs.

Reanimate.Animation

Synopsis

# Documentation

Duration of an animation or effect. Usually measured in seconds.

type Time = Double Source #

Time signal. Goes from 0 to 1, inclusive.

type SVG = Tree Source #

data Animation Source #

Animations are SVGs over a finite time.

Constructors

 Animation Duration (Time -> SVG)

animate :: (Time -> SVG) -> Animation Source #

Construct animation with a duration of 1.

Query the duration of an animation.

Play animations in sequence. The lhs animation is removed after it has completed. New animation duration is 'duration lhs + duration rhs'.

Example:

drawBox seqA drawCircle

Play two animation concurrently. Shortest animation freezes on last frame. New animation duration is 'max (duration lhs) (duration rhs)'.

Example:

drawBox parA adjustDuration (*2) drawCircle

Play two animation concurrently. Shortest animation loops. New animation duration is 'max (duration lhs) (duration rhs)'.

Example:

drawBox parLoopA adjustDuration (*2) drawCircle

Play two animation concurrently. Animations disappear after playing once. New animation duration is 'max (duration lhs) (duration rhs)'.

Example:

drawBox parLoopA adjustDuration (*2) drawCircle

Empty animation (no SVG output) with a fixed duration.

Example:

pause 1 seqA drawProgress

Play left animation and freeze on the last frame, then play the right animation. New duration is 'duration lhs + duration rhs'.

Example:

drawBox andThen drawCircle

mapA :: (Tree -> Tree) -> Animation -> Animation Source #

Map over the SVG produced by an animation at every frame.

Example:

mapA (scale 0.5) drawCircle

Freeze the last frame for t seconds at the end of the animation.

Example:

pauseAtEnd 1 drawProgress

Freeze the first frame for t seconds at the beginning of the animation.

Example:

pauseAtBeginning 1 drawProgress

Freeze the first and the last frame of the animation for a specified duration.

Example:

pauseAround 1 1 drawProgress

Change the duration of an animation. Animates are stretched or squished (rather than truncated) to fit the new duration.

Set the duration of an animation by adjusting its playback rate. The animation is still played from start to finish without being cropped.

Play an animation in reverse. Duration remains unchanged. Shorthand for: signalA reverseS.

Example:

reverseA drawCircle

Play animation before playing it again in reverse. Duration is twice the duration of the input.

Example:

playThenReverseA drawCircle

Loop animation n number of times. This number may be fractional and it may be less than 1. It must be greater than or equal to 0, though. New duration is n*duration input.

Example:

repeatA 1.5 drawCircle

Modify the time component of an animation. Animation duration is unchanged.

Example:

signalA (fromToS 0.25 0.75) drawCircle