Listing 1: Tcl/Tk Animation Script
#!/usr/local/bin/wish
global name frames dir
# Set name to the base filename of the images, i.e. mb
# for mb01.ppm, mb02.ppm, mb03.ppm, etc...
# set name mb
set dir forward
proc forward {} {
global name frames dir
set dir backward
for { set i 1 } { $i <= $frames } { incr i } {
set n [ format "%02d" $i ]
.t configure -image ${name}${n}
update idletasks
}
}
proc backward {} {
global name frames dir
set p forward
for { set i $frames } { $i >= 1 } { incr i -1 } {
set n [ format "%02d" $i ]
.t configure -image ${name}${n}
update idletasks
}
}
set frames 1
while 1 {
set n [ format "%02d" $frames ]
image create photo mb$n
if { [ catch {eval ${name}$n read ${name}${n}.ppm} ] } { break }
incr frames
}
incr frames -1
puts "Loaded $frames images"
label .t -image ${name}01
pack .t
bind .t <Button-1> { eval $dir }
Copyright © 1994 - 2019 Linux Journal. All rights reserved.