예제 #1
0
    def _start_anim(self, type=None):
        """ start the animation of the given type """
        self._reset_anim(type)
        kwargs = {
            'delay': int(self.delay_slider.value),
            'callback': None,
            'repeat': 0,
        }
        if type == ACTION_MOVE:
            kwargs['callback'] = self._move
            self._move_timer = Timer(**kwargs)
            self._move_timer.start()
        elif type == ACTION_RESIZE:
            kwargs['callback'] = self._resize
            self._resize_timer = Timer(**kwargs)
            self._resize_timer.start()
        elif type == ACTION_COLOR:
            kwargs['callback'] = self._color
            self._color_timer = Timer(**kwargs)
            self._color_timer.start()

        # progressbar
        kwargs['callback'] = self._update_progress
        self.progressbar.value = 0
        #		self.progressbar2.value = 0
        self._progress_timer = Timer(**kwargs)
        self._progress_timer.start()
예제 #2
0
파일: events.py 프로젝트: pwn2w1n/fifengine
    def _redirectEvent(self, name, event):
        self.indent += 4
        try:
            event = self.translateEvent(getEventType(name), event)
            if name in self.events:
                if self.debug: print "-" * self.indent, name
                for f in self.events[name].itervalues():

                    def delayed_f(timer, f=f):  # bind f during loop
                        n_timer = timer()
                        f(event)

                        #FIXME: figure out a way to get rid of the dead timer list
                        del self._deadtimers[:]

                        if n_timer in self._timers:
                            self._deadtimers.append(n_timer)
                            self._timers.remove(n_timer)

                    timer = Timer(repeat=1)
                    timer._callback = cbwa(delayed_f, weakref.ref(timer))
                    timer.start()

                    self._timers.append(timer)

        except:
            print name, repr(event)
            traceback.print_exc()
            raise

        finally:
            self.indent -= 4
예제 #3
0
    def anim_playback(self, widget):
        """ start / stop playback of an animation due to status of a gui ToggleButton
			Sets also two ivars of timer object (active & loop)
		"""
        if widget._isToggled():
            self._anim_timer.stop()
            self._anim_timer.active = False
        else:
            frame_delay = self._anim_data['obj'].getFrameDuration(
                self._anim_data['current'])
            self._anim_timer = Timer(delay=frame_delay,
                                     callback=self.next_anim_frame)
            self._anim_timer.active = True
            self._anim_timer.loop = self._gui_anim_loop._isMarked()
            self._anim_timer.start()