Class RMAnimator

All Implemented Interfaces:
Archivable, RMPropertyChanger, Cloneable

public class RMAnimator extends RMObject implements Archivable
This class represents a timer for animation, holding things like a current time and max time.
  • Constructor Details

    • RMAnimator

      public RMAnimator()
  • Method Details

    • getOwner

      public RMParentShape getOwner()
      Returns the owner of the animator.
    • setOwner

      public void setOwner(RMParentShape anObj)
      Sets the owner of the animator.
    • getTime

      public int getTime()
      Returns the current time of the animator.
    • setTime

      public void setTime(int aTime)
      Sets the current time of the animator (clamped to maxTime), tells owner to setTime as well.
    • getMaxTime

      public int getMaxTime()
      Returns the max time for this animator.
    • setMaxTime

      public void setMaxTime(int aMaxTime)
      Sets the max time for this animator. May also call setTime() if animator's current time is beyond new max.
    • getTimeSeconds

      public float getTimeSeconds()
      Returns the animator time in seconds.
    • setTimeSeconds

      public void setTimeSeconds(float aTime)
      Sets the time in seconds.
    • getMaxTimeSeconds

      public float getMaxTimeSeconds()
      Returns the animator max time in seconds.
    • setMaxTimeSeconds

      public void setMaxTimeSeconds(float aTime)
      Sets the max time in seconds.
    • getInterval

      public int getInterval()
      Returns the update interval of the animator in milliseconds.
    • setInterval

      public void setInterval(int anInterval)
      Sets the update interval of the animator in milliseconds.
    • getFrameRate

      public float getFrameRate()
      Returns the frame rate for this animator.
    • setFrameRate

      public void setFrameRate(float aValue)
      Sets the frame rate for this animator.
    • getEndAction

      public String getEndAction()
      Returns the action to be performed at the end of animation. For example: Loop, Loop:5, Loop:5,3, Page:Next, Page:Last, etc.
    • setEndAction

      public void setEndAction(String anAction)
      Sets the action to be performed at the end of animation.
    • getLoops

      public boolean getLoops()
      Returns whether this animator loops when time hits max time.
    • setLoops

      public void setLoops(boolean aValue)
      Sets whether this animator loops when time hits max time.
    • getResetTimeOnStop

      public boolean getResetTimeOnStop()
      Returns whether the time is reset to start value when animator stops.
    • setResetTimeOnStop

      public void setResetTimeOnStop(boolean aFlag)
      Sets whether the time is reset to start value when animator stops.
    • getKeyFrameTimes

      public List<Integer> getKeyFrameTimes()
      Returns the list of key-frames present in animator owner's children.
    • getKeyFrameTimes

      public List<Integer> getKeyFrameTimes(List<RMShape> theShapes, boolean includeImplied)
      Returns the list of key-frames present in the given list of shapes (assumed to be animator owner's descendants).
    • canFreezeFrame

      public boolean canFreezeFrame()
      Returns whether the current time is not currently a key-frame.
    • addFreezeFrame

      public void addFreezeFrame()
      Adds a freeze frame for the animator's current time to the freeze-frame list.
    • getScopeTime

      public int getScopeTime()
      Returns the key-frame time that new anim records should be made relative to.
    • setScopeTime

      public void setScopeTime(Integer aValue)
      Sets the key-frame time that new anim records should be made from.
    • play

      public void play()
      Initiates a Swing timer to start automatically incrementing the animator's time (by frame rate increments).
    • stop

      public void stop()
      Disables the Swing timer to stop automatically incrementing the animator's time.
    • frameForward

      public void frameForward()
      This method tells the animator to move one frame forward (based on the frame rate).
    • frameBackward

      public void frameBackward()
      This method tells the animator to move one frame backward (based on the frame rate).
    • isRunning

      public boolean isRunning()
      Returns whether the animator is currently in the act of playing.
    • getSecondsElapsed

      public float getSecondsElapsed()
      Returns the number of seconds the animator has been playing for.
    • getPlayStartTime

      public int getPlayStartTime()
      Returns the play start time.
    • addAnimatorListener

      public void addAnimatorListener(RMAnimator.Listener aListener)
      Adds an animator listener.
    • removeAnimatorListener

      public void removeAnimatorListener(RMAnimator.Listener aListener)
      Removes an animator listener.
    • shiftFrames

      public void shiftFrames(int fromTime, int aShiftTime)
      Shifts records of animator owner's children from the given from-time on, by the given by-time.
    • scaleFrames

      public void scaleFrames(int aStartTime, int newMaxTime)
      Scales records of the animator owner's children in the range from start to start + length to a given new length.
    • isEmpty

      public boolean isEmpty()
      Returns whether animator owner's children are devoid of any animation records.
    • removeFramesAtTime

      public void removeFramesAtTime(int aTime)
      Removes records of the animator owner's children at a given time.
    • removeFramesBetweenTimes

      public void removeFramesBetweenTimes(int startTime, int endTime, boolean inclusive)
      Removes records of the animator owner's children in the given time range.
    • resetShapeTimeline

      protected void resetShapeTimeline(RMShape aShape)
      Resets a shape's timeline.
    • isEnabled

      public boolean isEnabled()
      Returns whether the animator owner's children should accept changes.
    • setEnabled

      public void setEnabled(boolean aFlag)
      Sets whether the animator owner's children should accept changes. This can be used strategically to disable the Animator so that it does not receive certain events (like each of the discrete moves in a mouse drag loop). Should be followed by enable (they can be nested).
    • isNewborn

      public boolean isNewborn(Object anObj)
      Returns whether the given objects was created while at the current time.
    • addNewborn

      public void addNewborn(Object anObj)
      Declare newBorn shapes so that if they are added at non-zero time, we won't get bogus initial values (after an explicit time change, they will start to accept changes).
    • clone

      public RMAnimator clone()
      Standard clone implementation.
      Overrides:
      clone in class RMListenerList
    • toXML

      public RXElement toXML(RXArchiver anArchiver)
      XML archival.
      Specified by:
      toXML in interface Archivable
    • fromXML

      public Object fromXML(RXArchiver anArchiver, RXElement anElement)
      XML unarchival.
      Specified by:
      fromXML in interface Archivable
    • toString

      public String toString()
      Returns a string description of the animator.
      Overrides:
      toString in class RMObject