Mercurial > code > home > repos > light9
comparison flax/Timeline.py @ 124:8de8a2f467db
The "T" function now creates TimedEvents with LinearBlenders for you
The "T" function now creates TimedEvents with LinearBlenders for you
(using the same LinearBlender). Thus, we don't need to specify linear
anymore.
The timeline seek bar was reading the length of track1 instead of the
whole timeline. This is fixed.
author | dmcc |
---|---|
date | Fri, 13 Jun 2003 15:55:54 +0000 |
parents | 41c0ec6cd10a |
children | 5670f66845ce |
comparison
equal
deleted
inserted
replaced
123:41c0ec6cd10a | 124:8de8a2f467db |
---|---|
287 levels = [t.get_levels_at_time(self.current_time) | 287 levels = [t.get_levels_at_time(self.current_time) |
288 for t in self.tracks] | 288 for t in self.tracks] |
289 return dict_max(*levels) | 289 return dict_max(*levels) |
290 | 290 |
291 if __name__ == '__main__': | 291 if __name__ == '__main__': |
292 T = TimedEvent | 292 def T(*args, **kw): |
293 | 293 """This used to be a synonym for TimedEvent: |
294 linear = LinearBlender() | 294 |
295 T = TimedEvent | |
296 | |
297 It now acts the same way, except that it will fill in a default | |
298 blender if you don't. The default blender is a LinearBlender.""" | |
299 linear = LinearBlender() | |
300 if 'blender' not in kw: | |
301 kw['blender'] = linear | |
302 | |
303 return TimedEvent(*args, **kw) | |
304 | |
295 quad = ExponentialBlender(2) | 305 quad = ExponentialBlender(2) |
296 invquad = ExponentialBlender(0.5) | 306 invquad = ExponentialBlender(0.5) |
297 smoove = SmoothBlender() | 307 smoove = SmoothBlender() |
298 | 308 |
299 track1 = TimelineTrack('red track', | 309 track1 = TimelineTrack('red track', |
300 T(0, 'red', blender=linear, level=0), | 310 T(0, 'red', level=0), |
301 T(4, 'red', blender=quad, level=0.5), | 311 T(4, 'red', blender=quad, level=0.5), |
302 T(12, 'red', blender=smoove, level=0.7), | 312 T(12, 'red', blender=smoove, level=0.7), |
303 T(15, 'red', level=0.0)) # last TimedEvent doesn't need a blender | 313 T(15, 'red', level=0.0)) # last TimedEvent doesn't need a blender |
304 track2 = TimelineTrack('green track', | 314 track2 = TimelineTrack('green track', |
305 T(0, 'green', blender=invquad, level=0.2), | 315 T(0, 'green', blender=invquad, level=0.2), |
306 T(5, 'green', blender=smoove, level=1), | 316 T(5, 'green', blender=smoove, level=1), |
307 T(10, 'green', blender=linear, level=0.8), | 317 T(10, 'green', level=0.8), |
308 T(15, 'green', blender=linear, level=0.6), | 318 T(15, 'green', level=0.6), |
309 T(20, 'green', level=0.0)) # last TimedEvent doesn't need a blender | 319 T(20, 'green', level=0.0)) # last TimedEvent doesn't need a blender |
310 track3 = TimelineTrack('tableau demo', | 320 track3 = TimelineTrack('tableau demo', |
311 T(0, 'blue', level=0.0, blender=linear), | 321 T(0, 'blue', level=0.0), |
312 T(2, 'blue', level=1.0, blender=InstantEnd()), | 322 T(2, 'blue', level=1.0, blender=InstantEnd()), |
313 T(18, 'blue', level=1.0, blender=linear), | 323 T(18, 'blue', level=1.0), |
314 T(20, 'blue', level=0.0, blender=linear)) | 324 T(20, 'blue', level=0.0)) |
315 | 325 |
316 tl = Timeline([track1, track2, track3]) | 326 tl = Timeline([track1, track2, track3]) |
317 | 327 |
318 tl.play() | 328 tl.play() |
319 | 329 |
341 levels = tl.get_levels() | 351 levels = tl.get_levels() |
342 for color in colors: | 352 for color in colors: |
343 scalevars[color].set(levels.get(color, 0)) | 353 scalevars[color].set(levels.get(color, 0)) |
344 | 354 |
345 colorscalesframe.pack() | 355 colorscalesframe.pack() |
346 time_scale = Tix.Scale(root, from_=0, to_=track1.length(), | 356 time_scale = Tix.Scale(root, from_=0, to_=tl.length(), |
347 orient=Tix.HORIZONTAL, res=0.01, command=set_timeline_time) | 357 orient=Tix.HORIZONTAL, res=0.01, command=set_timeline_time) |
348 time_scale.pack(side=Tix.BOTTOM, fill=Tix.X, expand=1) | 358 time_scale.pack(side=Tix.BOTTOM, fill=Tix.X, expand=1) |
349 | 359 |
350 def play_tl(): | 360 def play_tl(): |
351 tl.tick() | 361 tl.tick() |