NAME
Tk::Animation - Display sequence of Tk::Photo images
SYNOPSIS
use Tk::Animation
my $img = $widget->Animation('-format' => 'gif', -file => 'somefile.gif');
$img->add_frame(@images);
$img->start_animation( $period );
$img->next_image;
$img->prev_image;
$img->set_image( 0 .. $#frames );
$img->pause_animation;
$img->resume_animation( $period );
$img->fast_forward( $multiplier );
$img->fast_reverse( $multiplier );
$img->stop_animation;
$img->blank( $boolean );
DESCRIPTION
In the simple case when Animation
is passed a GIF89 style GIF with multiple 'frames', it will build an internal array of Photo
images.
The add_frame
method adds images to the sequence. It is provided to allow animations to be constructed from separate images. All images must be Photo
s and should all be the same size.
start_animation($period)
then initiates a repeat
with specified $period to sequence through these images. As for raw repeat
$period is in milliseconds, for a 50Hz monitor it should be at least 20mS. If $period is omitted it defaults to 100 milliseconds.
stop_animation
cancels the repeat
and resets the image to the first image in the sequence.
For fine-grained control next_image
and prev_image
move one frame forward or backward. set_image
randomly positions the animation to a particular frame.
pause_animation
pauses the movie and resume_animation
continues from the pause point.
fast_forward
and fast_reverse
speed through the movie either forwards or backwards. $multiplier specifies how much faster the animation moves.
By default Animation leaves the previous movie frame in the animation photo. Many times overlaying subsequent frames produces a composite that looks blurred. The blank
method is used to blank the animation photo before displaying new frames. The default is 0 for backward compatibility.
BUGS
The 'period' should probably be a property of the Animation object rather than specified at 'start' time. It may even be embedded in the GIF.
Rather than calling blank
manually the default value from the GIF animation itself should be used.