Navigation: Konzepte und Verfahren >

Animation

Diese Seite drucken
Vorherige Seite Nächste Seite
Zurück zur Kapitelübersicht

Anzeige-Fenster und -Elemente können über einen sehr flexiblen Mechanismus animiert werden. Diese Animation kann nicht nur Position und Größe betreffen, sondern auch andere Eigenschaften, etwa Transparenz oder Farben.

Es können auch unterschiedliche Auslöser oder Abbruchbedingungen für die Animationen definiert werden, ebenso wie danach auszuführende Animationen oder Wiederholungsarten.

 

Es werden hierzu über Animations-Platzhalter Animationen vordefiniert und nur deren IDs in die Animation-Eigenschaft eines Elements oder Fensters eingesetzt. Auf diese Weise können beliebige Standard-Animationen für die Anwendung vordefiniert werden, die dann alle gleich sind und leicht global angepasst werden können.

 

Als Beispiel kann die Animation mit der ID Anim1 mit einem Mehrfach-Setze-Befehl definiert werden:

 

Setze , MultiSet 'cX.Animation(Anim1):¶.FensterID=F1.B1¶.Eigenschaft=1¶.Endwert$=[cX...'

 

Insgesamt werden hier Eigenschaften des Platzhalters cX.Animation(Anim1).X gesetzt, was über den Mehrfach-Setze-Befehl sehr einfach ist:

 

cX.Animation(Anim1):

.FensterID=F1.B1

.Eigenschaft=1

.Endwert$=[cX.Animation().Startwert]+50

.Modus=2

.Auslösung=2

.StartStop=1

 

Diese Animation variiert die X-Eigenschaft (Eigenschaft=1) des Elements B1 in Fenster F1 vom aktuellen Wert bis zu 50mm (bei Skripteinstellung Millimeter) nach rechts und wieder zurück (Modus=2), automatisch (StartStop=1) dann, wenn es berührt wird (Auslösung=2).

 

Folgende Eigenschaften von cX.Animation() stehen hierbei zur Verfügung:

.AbschlussereignisHier kann ein Markenname angegeben werden, welcher am Ende der Animation (bei .Modus 1 oder 3) aufgerufen werden soll.
Optional kann dabei ein Parameter mit angegeben werden, um zusätzliche Informationen an die Bearbeitungsfunktion zu übergeben. Wird also z.B. Abschluss(Test) angegeben und die Marke lautet ::Abschluss(Name), wird diese aufgerufen, wobei dann "Test" in der Variablen [Name] steht (siehe Funktionen). Wird als Ereignismarke dagegen nur Abschluss angegeben, wird ebenfalls die Marke ::Abschluss(Name) aufgerufen, wobei [Name] dann leer ist.
.AktuellerWertZugriff auf den aktuellen Eigenschaftswert; optional kann per Index die Zieleigenschaft angegeben werden
.AnzahlLiefert die Anzahl der definierten Animationen
.AuslösungBestimmt die Auslösung der Animation:
0=Manuell (bei .StartStop=1), 1=Anklicken, 2=Mausberührung, 3=Verlassen mit der Maus, 4=Fokuserhalt, 5=Fokusverlust
.BeendetIDLiefert die ID der zuletzt abgeschlossenen Animation (nützlich im Abschlussereignis)
.DauerDauer der Animation (Standard=500ms)
.EigenschaftZu animierende Eigenschaft:
1=X, 2=Y, 3=Breite, 4=Höhe, 5=Hintergrundfarbe, 6=Transparenz (nur Fenster), 7=Zuweisung ausführen (siehe .Zuweisung), 8=Drehwinkel (Zeichenflächen)
Typ 7 ermöglicht das Setzen weiterer Eigenschaften, wobei hier noch .Zuweisung angegeben werden muss.
.EndwertEndwert für die Eigenschaft (bei Formeln .Endwert$ verwenden!).
Optional kann per Index die Zieleigenschaft angegeben werden.
Wird der Endwert nicht angegeben, wird der aktuelle Wert der Eigenschaft verwendet.
Beim Lesen wird der gesetzte oder ermittelte numerische Wert geliefert.
Um den Endwert relativ zum Startwert anzugeben, kann dieser mit "cX.Animation.Endwert(n)$=[cX.Animation().AktuellerWert(n)]" mit n=Eigenschaftsindex verrechnet werden.
.FensterIDID des zu animierenden Fensters bzw. Elements
.IDID der aktuellen Animation
.IntervallSchrittintervall in Millisekunden (Standard=20ms, Minimum=10ms)
.KollisionsereignisHier kann ein Markenname angegeben werden, welcher bei Kollisionen mit anderen Elementen aufgerufen werden soll.
Das Ereignis wird nicht erneut für die selbe Kollision ausgelöst, wenn diese Kollision andauert.
Optional kann dabei ein Parameter mit angegeben werden, um zusätzliche Informationen an die Bearbeitungsfunktion zu übergeben. Wird also z.B. Kollision(Test) angegeben und die Marke lautet ::Kollision(Name), wird diese aufgerufen, wobei dann "Test" in der Variablen [Name] steht (siehe Funktionen). Wird als Ereignismarke dagegen nur Kollision angegeben, wird ebenfalls die Marke ::Kollision(Name) aufgerufen, wobei [Name] dann leer ist.
Hinweis: Bei sehr schnell bewegten Elementen kann ggf. ein kleines anderes Element übersprungen und nicht als Kollision gemeldet werden.
.KollisionsIDsHier stehen bei Kollisionen (also im Kollisionsereignis abzurufen) die IDs der berührten anderen Elemente als Liste.
.LäuftLiefert 1, wenn die Animation gerade läuft
.ModusBestimmt die Animationsart:
0=einmal (Vorgabe - Starten per StartStop=1),
1=ständig wiederholt,
2=hin und zurück,
3=wiederholt hin und zurück,
4=wechseln zwischen Start- und Zielwert
.NächsteAnimationHier kann die ID einer anderen Animation angegeben werden, welche im Anschluss an diese (bei .Modus 1 oder 3) ausgeführt werden soll
.Prozentaktueller Prozentsatz der Animation
.StartStopAnimation sofort (2) bzw. je nach Trigger starten (1), beenden (0), pausieren (-1), weiterlaufen lassen (-2), abschließen (-3) oder Reset (-4)
.StartwertStartwert für die Eigenschaft (bei Formeln .Startwert$ verwenden).
Optional kann per Index die Zieleigenschaft (s.o.) angegeben werden, z.B. .Startwert(1)=1 für X-Position.
Wird der Startwert nicht angegeben, wird der aktuelle Wert der Eigenschaft verwendet.
Beim Lesen wird der gesetzte oder ermittelte numerische Wert geliefert.
.TriggerAnimationID der Animation, bei deren Auslösung auch diese Animation starten soll, wenn sie nicht bereits läuft
.VorlageSetzen auf ID einer vorhandenen Animation kopiert diese als Vorlage
.WiederholungenBei den Modi 1 und 3 max. durchzuführende Wiederholungen (0=unbegrenzt)
.ZurücksetzungBestimmt das Ereignis zum Stoppen/Zurücksetzen der Animation:
1=Anklicken, 2=Mausberührung, 3=Verlassen mit der Maus, 4=Fokuserhalt, 5=Fokusverlust
.ZuweisungHier kann bei Eigenschaft=7 (s.o.) eine beliebige Zuweisung mit Verrechnung von .Prozent oder .AktuellerWert .stehen, etwa Anzeige.Element(ID).X = [cX.Animation(ID).Prozent]
.ZyklusereignisHier kann ein Markenname angegeben werden, welcher am Ende eines Durchlaufs bei zyklischen Animationstypen aufgerufen werden soll.
Optional kann dabei ein Parameter mit angegeben werden, um zusätzliche Informationen an die Bearbeitungsfunktion zu übergeben. Wird also z.B. Zyklus(Test) angegeben und die Marke lautet ::Zyklus(Name), wird diese aufgerufen, wobei dann "Test" in der Variablen [Name] steht (siehe Funktionen). Wird als Ereignismarke dagegen nur Zyklus angegeben, wird ebenfalls die Marke ::Zyklus(Name) aufgerufen, wobei [Name] dann leer ist.

 

Während der Animation von Anzeige-Elementen werden (falls in .Kollisionsereignis definiert) Kollisionen mit anderen Elementen im entsprechenden Ereignis-Unterprogramm gemeldet. Die IDs der berührten Elemente dann in [cX.Animation.KollisionsIDs]

Nach Abschluss einer Animation wird (falls in .Abschlussereignis definiert) das entsprechende Ereignis-Unterprogramm aufgerufen, wobei [cX.Animation.BeendetID] die ID der zuletzt abgeschlossenen Animation enthält.

In diesen Unterprogrammen kann bei Bedarf über [cX.Animation([cX.Animation.BeendetID]).FensterID] die ID des animierten Elements ermittelt werden.

 

Schnellanimation per Kurzdefinition

Um ein Element ohne spezielle Definition einer Animation schnell und einfach vorübergehend animieren zu können, kann in der Animation-Eigenschaft des Elements auch eine Kurzdefinition der durchzuführenden Animation angegeben werden. Diese wird dann nur beim ersten Erscheinen des Elements durchgeführt.

Angegeben wird dabei eine Liste der Werte, zwischen denen sich die Animation abspielen bzw. wie lange sie dauern soll. Angegeben werden können dabei:

X1        Startposition horizontal (Standardwert=aktuelle Position)

X2        Endposition horiziontal

Y1        Startposition vertikal (Standardwert=aktuelle Position)

Y2        Endposition vertikal

T        Dauer der Bewegung in Sekunden (Standard=500ms)

Die Kurzdefinition X2=40;Y2=50; T=5 etwa lässt das Element von der definierten Startposition aus innerhalb von 5 Sekunden an die Position X=40/Y=50 (Millimeter, wenn nicht anders eingestellt) laufen.

 

 

Anklicken, um ein Beispiel als cX4Web anzuzeigenBeispiel Animation **cx5AR+LCAAAAAAABADNWd1u2zYUvh+wdzjV2sLCEEey7HRzowFxnSAZmi5AgqRNkQvapi3OEmmQVJz4efIMu+pdXmyHsizL8X+qrLtJRFo+5+PHw++cQ++ftyUb6D9+/glg/4OIIsI7KhlNx5D+v7gfUN8yA8q1BRf0TvtWk0aCKy2JZoJDX0SDkN5RCQecRcmcuiWSEa4pt2B3peXDaKDv1730xP0h462Q8s5O5g86tMs4o5JyKN0yGlK4nCCAbkjafSo5hJR1EGWLMjiiiB/n7C1d92M5gkBINhJckxCGxnS4dpXnVCd4ELYFp3GoGc74VvtzOVtCCZ/ONZHatetvf7lrvsc/B+/Lh6yHUNsB6Wrfzc/zzpBK/dr/OmPELic2zEc3v9Zy75+KTqz8Sm6mSWIq/YrjRGp7/kdCRIbrlFsNoyHhPRU+PsRd1oMd4LEEEipoUKYGuCGv1jK9DUeVGY6yJZc823fmScLpeZ4O+jqmYUjl1fiNm4UGq4sNVtcarNo3W7J6iWGMR4qrAcEw1sBJOwDF2oFuEQklQ2gatcVy6S3hcs/2XWfR4vED5yWOdbo6IHG3hbG5/lAFYnjFeEcMJxam+rNjJKoOH0LW7kNEX1lw0kEPrgUfRTt55bNvuc50+GU8vGIdHeCj244sOKasF6BZt2pGmfHEz/ioroPYiLUWfALvQsS4pRGFEipI2U5BNTYFVXNykPD5hN8yxXCLfctZCK9ipeAQ3hHq1RTsbopyC/ATKqF0RGRrSNuBomG2hsqqNXj/vzWYcQbeWwW+9uPAG5ANcZeT3R5p0THow5VR824W9EsDPSOchhY0hMT8imDQY0R69CO5FzECr44hn62E/PsUspfj2fsP4DclMRKSPFcmbL9hbcHfWHAmFEsR16ajL8koxVvJ4a0kyzCidNI0glPGVX8XuOcoaUYRzVdGzzViGHehRGLVffwWSDxDgV2f5KJxmpIoB1pBnNRbMRoexfLxG541rFwYbW2g5fmENXmaT1iuXU79njQttGD86bGuF2U/KZRytivFmT6IsUD6R8W8l7NfIPRcrbiNgyf7nlUAMGSyg9lYC+NFmdTFNMZTBCQtdThcx0obgy0suXu6wKWMa438Pjhri46tzZcqdp6oIj18enzADKlpNp9zhHNFRlULtyaMlcIzznqcqVlPaUGE7RItzmcSI+daDLaJs+co2THjQ+wg6qaPiOCUBrKLerODSEcYfX3CuZEauDRr5+YjPFzQIQr+av1N+zqJ2DoAiVDEutihQI92RdjTcIu6ljsvlI9i4wi/jnZx34KXaV1nRLWCy0rqkycimslnQWX+bLeUCaiP2anhFtVrOiubzan0zUxnceS/SPTMsO1hzkoqV2lETAGGFtLQk8i3AoJvbpQkN6TcW0F5ZQnltXnK/bckGrw/7nZdx50n2MvNXDGKtVcgwiSCl3GfFMA/iP9qHQZYL1xPzlka+xrfhMcHlCdZFPnVFeR7S8h/t6gHXtT7P2mKV4b6U7qvx8daoXqZj/NYxrcxVfW8zdlQuat2OaP/dU66k/dGmD1o6chkx5CaXSw1PLucbOTXBYZmrjvW3nV8d/TU6pD2P+P7O9GPMeEFJNTJfUHIeB+FOySYBosKo9ryMDpcII+lmj0TRSsjozq39a65iPtBR3Ovjj1WwqW5H72mWOFT3g1NCUNBCl2kMu4tZ/VsWTL6bePD6e3NH05ns8OZI3x+c9ZekW60B1eEra2Rn3UhnlZ+gA2aud82xZ6m0055nbk/42hwSiTWG59IRLctG0+pUtjtz1/CmS/XYUY8yo0xuJPmesngnckrWadsfqXY301/vvgXgMi8AscYAAA==***cx5AR+LCAAAAAAABADdWd1u2zYUvh+wdzjV2sLCENfyT7q51YC4ThAPTRsgQdOm6AVtU
RJniTJIKk79PH2GXfUuL7ZDSZbl+N9V2m03iUjR53zn4/kj9fJiINhI/fHzTwAvX0VhSLg
jk9FsDNn/y88jaht6QLky4JLeKtvo0jDiUgmiWMRhGIWjgN5SAUechcmcvCGCEa4oN+DZW
snH4Uh93rTonvpjxvsB5c5Brg8c6jLOqKAcKjeMBhTeTRGAG5DBkAoOAWUOouxTBicU8eO
cuaPqYSwm4EeCTSKuSABjLTrYaOUFVQkehG3AWRwohjO2MXhfzU2o4NOFIkJZZvvpL7fdF
/jn6EX1mHkIdeATV9lWcZ47YyrUY/vjnBCzmsjQrz792iqsP4ucWNr1wkyXxFTY9VotlLv
zP4miUHOdcatgMibck8Hdl9hlHhwAjwWQQEKHMjnCDXm0keldOKrPcZSbXGmYdm2RJJxe5
OloqGIaBFRcpSs+LRXYXC6wuVFg0/y0I6vv0I0xpLgcEXRjBZwMfJBs4Ks+EVDRhGZeWy6
XjRVcHpq2VVtmPL6oPURYZ9YBid0++ubmoPKj8RXjTjSeSpjlnwOdotrwKmCDIYT0kQE9B
zVYBryOBsmS97Zh1WbDD+nwijnKx0drEBpwSpnno1irqUe58ERPGqqbIHZipSKeKu9YU5i
XUYxbG1KoYCapmo+2BNWqFSDhc4/fMMlwi22jthRe3cjAIbwTzFczsM8ylNuDr0/BTymFy
gkR/TEd+JIG621o/EtsaCzaoMfrwbd+HHgNrhPdpuiPrUL69UifrgP9fB70QwM9J5wGBnQ
igfUVwaDGkHj0NfkcxQi4mVpwvjb6fp9BbhR4bnwH+F1BdApJnnM/f8IGEX9iwHkkWYa4N
Rt9SEYZ3noBbz0xQyelXlcnnCpa/U3g9smkOUW02BntK0QzbkGFxNK9++oLjB3fbE9rUVq
mBKYBJSFO+q0YBU9icfcVYww7F0b7W+TyYsGaPi0WLMusZnp7XQMlaH0qzetlyU8apYLse
nmij2JskP6WMfcK8kuEXugVd1Fwb9/zDgDGTDhYjVWktUhdsphCfwqBZK0Oh+tYKi2wjy2
3p8ozJQfxuGBJ2nFNMNJo5QQXvccWqycz+NR5q3PNpYhpiYymLU/RHWobe589rKzUzXWGf
vhehiKOoueUaeubuy/YKiiazxcU4VyZYdZHXw1iKTHpMY8zOa8p6xDx/Fgif8lOXqhotEv
g7ZPaTxkf45GqrQ9WIZxRX7iYgA8Q6QTDcUg417kX3mnbuX6F2QYcIuFt/y86VEkItwFIi
FndxSMbeNSNAk/BDSb6QgKhfBJrRfhzlIv75j/MWX6uytTRrKRhu1dV8npS0rln/viYVxQ
by3XHKuvwXVt7+p7Vgrnp3I/sB/GeObYbWMSTFl7orC4BXQtp8ATyLYHgyq26hi0pb6yhv
L6C8tYi5fZTEo5enLquVbO2Jjhp91eR/M159b9h83UaQBLzhH7d+L/SUTTsilE8j/hRkCS
xvbzjgUOw2YYR9tDX01SbpT+FK+HuC1YoUVb8NdeQ31hB/vNl90LL7sPuXRSV5ZjpDWVT7
rc5WxbvplnN6S/2YPdasOOA6l2sdBpmNdnIj0sEzV0Bbrz/+2bvabUhuwtI77SjYYw9j08
CldyhBYwPsXYHBDuhstyotdqNjpdUyErLnPOitZ7RXNh6S19O/6DQPGxDjydc6m8G1xRPv
ZS7ge5iKYhIlVkcD1ezer6qH/lt6+BsHC4GZ2274CwQvrg5Gz8bbLUHV4RtPDfu9ZEoa/7
Bvfuqv/nofl/R2e3RJnF/xuHojAhsOd+QkO56cjijUhKPLl5M6x+3YS55VDspuF53c8rgz
nRJfnukv9y9fJZ90vsH0gzhqtsbAAA==*

 

 


cX-Webseite: http://www.clickexe.net