com.threerings.media.animation
Class MultiFrameAnimation

java.lang.Object
  extended by com.threerings.media.AbstractMedia
      extended by com.threerings.media.animation.Animation
          extended by com.threerings.media.animation.MultiFrameAnimation
All Implemented Interfaces:
Shape

public class MultiFrameAnimation
extends Animation

Animates a sequence of image frames in place with a particular frame rate.


Nested Class Summary
 
Nested classes/interfaces inherited from class com.threerings.media.animation.Animation
Animation.AnimCompletedOp, Animation.AnimStartedOp
 
Field Summary
protected  int _fidx
           
protected  MultiFrameImage _frames
           
protected  FrameSequencer _seeker
           
 
Fields inherited from class com.threerings.media.animation.Animation
_finished
 
Fields inherited from class com.threerings.media.AbstractMedia
_bounds, _firstTick, _mgr, _observers, _renderOrder, HUD_LAYER
 
Constructor Summary
MultiFrameAnimation(MultiFrameImage frames, double fps, boolean loop)
          Creates a multi-frame animation with the specified source image frames and the specified target frame rate (in frames per second).
MultiFrameAnimation(MultiFrameImage frames, FrameSequencer seeker)
          Creates a multi-frame animation with the specified source image frames and the specified target frame rate (in frames per second).
 
Method Summary
 void fastForward(long timeDelta)
          Called when the appropriate media manager has been paused for some length of time and is then unpaused.
 Rectangle getBounds()
          Returns a rectangle containing all the pixels rendered by this media.
 void paint(Graphics2D gfx)
          Called by the appropriate manager to request that the media render itself with the given graphics context.
 void reset()
          If this animation has run to completion, it can be reset to prepare it for another go.
protected  void setFrameIndex(int fidx)
          Sets the frame index and updates our dimensions.
 void tick(long tickStamp)
          Called periodically by this media's manager to give it a chance to do its thing.
 
Methods inherited from class com.threerings.media.animation.Animation
addAnimationObserver, didFinish, isFinished, removeAnimationObserver, setLocation, willFinish, willStart
 
Methods inherited from class com.threerings.media.AbstractMedia
addObserver, contains, contains, contains, contains, getBounds2D, getPathIterator, getPathIterator, getRenderOrder, init, init, intersects, intersects, invalidate, invalidateAfterChange, naturalCompareTo, queueNotification, removeObserver, renderCompareTo, setRenderOrder, shutdown, toString, toString, viewLocationDidChange
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

_frames

protected MultiFrameImage _frames

_seeker

protected FrameSequencer _seeker

_fidx

protected int _fidx
Constructor Detail

MultiFrameAnimation

public MultiFrameAnimation(MultiFrameImage frames,
                           double fps,
                           boolean loop)
Creates a multi-frame animation with the specified source image frames and the specified target frame rate (in frames per second).

Parameters:
frames - the source frames of the animation.
fps - the target number of frames per second.
loop - whether the animation should loop indefinitely or finish after one shot.

MultiFrameAnimation

public MultiFrameAnimation(MultiFrameImage frames,
                           FrameSequencer seeker)
Creates a multi-frame animation with the specified source image frames and the specified target frame rate (in frames per second).

Method Detail

getBounds

public Rectangle getBounds()
Description copied from class: AbstractMedia
Returns a rectangle containing all the pixels rendered by this media.

Specified by:
getBounds in interface Shape
Overrides:
getBounds in class AbstractMedia

reset

public void reset()
Description copied from class: Animation
If this animation has run to completion, it can be reset to prepare it for another go.

Overrides:
reset in class Animation

tick

public void tick(long tickStamp)
Description copied from class: AbstractMedia
Called periodically by this media's manager to give it a chance to do its thing.

Specified by:
tick in class AbstractMedia
Parameters:
tickStamp - a time stamp associated with this tick. Note: this is not obtained from a call to System.currentTimeMillis() and cannot be compared to timestamps obtained there from.

setFrameIndex

protected void setFrameIndex(int fidx)
Sets the frame index and updates our dimensions.


paint

public void paint(Graphics2D gfx)
Description copied from class: AbstractMedia
Called by the appropriate manager to request that the media render itself with the given graphics context. The media may wish to inspect the clipping region that has been set on the graphics context to render itself more efficiently. This method will only be called after it has been established that this media's bounds intersect the clipping region.

Specified by:
paint in class AbstractMedia

fastForward

public void fastForward(long timeDelta)
Description copied from class: AbstractMedia
Called when the appropriate media manager has been paused for some length of time and is then unpaused. Media should adjust any time stamps that are maintained internally forward by the delta so that time maintains the illusion of flowing smoothly forward.

Overrides:
fastForward in class AbstractMedia