[Release] Animation-Timer / LoopTimer

02/08/2016 01:24 rollback#1
Heute Release ich einen Animation-Timer und einen LoopTimer (der, der auch gestern schon im Release mit drin war).

Mit dem Animation-Timer kann man ganz einfach lineare Animationen ausführen.

Hier ein Screen einer meiner Tests:
[Only registered and activated users can see links. Click Here To Register...]


Bedienung:
  • animationFunc (function): Eine Funktion die während der Animation mehrmals mit den neuen Position aufgerufen wird
  • duration (float): Dauer der Animation in Sekunden
  • startValues (list / tuple mit numerischen Werten): Startwerte für die Animation. Anzahl der Werte muss den Übergabeparametern der Funktion entsprechen
  • endValues (list / tuple mit numerischen Werten): Endwerte für die Animation. Anzahl der Einträge muss die selbe wie bei startValues sein
Die Animation kann beliebig oft angehalten (animation.Stop()) und wieder gestartet (animation.Start()) werden. Sobald die Animation einmal beendet wurde, bringt ein Aufruf von animation.Start() nichts mehr.


Download:

Special Thanks:
  • Yiv - für den Beistand beim Einrichten meines m2_releases Ordners ... :D
02/08/2016 01:31 Yiv#2
Falls sich jemand fragt, wofür das gut sein soll:
Man könnte damit bspw. sehr leicht eine Sidebar animieren, also das ein- und ausklappen oder irgendwelche anderen GUI-Elemente. Natürlich kann man das ganze auch anderweitig nutzen :P

Hast du gut gemacht, mein Padawan :awesome:

MfG
02/08/2016 02:24 blackout85#3
schick schick

für den Fall das die Seiten irgendwann weg sind beide Files zum download
02/08/2016 09:50 [-Lee-]#4
Felix aka der König der RLS mit den wenige Leute was anfangen können :D
02/09/2016 22:51 Lefloyd#5
Doch ist schön brauch ich nicht mehr mein komisches self.startTime usw... :D Hab mir sowas für Window-Class für Alpha gemacht das auch cool ^_^
02/10/2016 09:15 rollback#6
Quote:
Originally Posted by Lefloyd View Post
Doch ist schön brauch ich nicht mehr mein komisches self.startTime usw... :D Hab mir sowas für Window-Class für Alpha gemacht das auch cool ^_^
Danke für dein Feedback! :)

Kannst das hier ja auch für Alpha nutzen:
Code:
from animation import Animation

animation = Animation(lambda alpha: self.__myGuiElement.SetAlpha(alpha), 0.5, [0.0], [1.0])
animation.Start()
(Alpha von 0.0 auf 1.0 innerhalb von 1/2 Sekunde)

Wie Yiv bereits gesagt hat, kann man für alles mögliche nutzen :D
02/13/2016 13:32 rollback#7
Es ist jetzt noch ein neuer AnimationTimer verfügbar. Dieser läuft nun ohne den LoopTimer und sollte (zumindest theoretisch) die angegebene Funktion öfter und zuverlässiger aufrufen.

Änderungen für in der Anwendung:
Die Stop() Methode beendet nun den Thread, zum pausieren jetzt die Pause() Methode nutzen.


EDIT:
Der neue AnimationTimer benötigt nun den neuen LoopTimer (v2).
02/21/2016 01:32 rollback#8
Hier mal ein kleines Beispiel was man damit so machen kann (mit wenig Aufwand ... wie man in der Datei im Hintergrund sieht):