}
NewModelAnimation() | Erzeugt ein ModelAnimation Objekt |
Init() | Initialisiert die ModelAnimation |
UpdateModel() | Ruft die installierte Callback-Funktion OnModelChange auf |
Reset() | Setzt die ModelAnimation auf den State 0 |
SetState() | Setzt die ModelAnimation auf einen bestimmten State ohne Übergangs-Animation |
SetNextState() | Setzt die ModelAnimation auf den nächsten State, ohne Übergangs-Animation. |
SetPrevState() | Setzt die ModelAnimation auf den vorherigen State, ohne Übergangs-Animation. |
ToState() | Führt die Animation auf einen bestimmten State aus. |
Next() | Setzt die ModelAnimation auf den nächsten State. Wenn eine Animation für den Übergang definiert ist, wird diese abgespielt → AnimationToState(). |
Prev() | Setzt die ModelAnimation auf den vorherigen State. Wenn eine Animation für den Übergang definiert ist, wird diese abgespielt → AnimationToState(). |
Stop() | Stop die Animation an der akuellen Stelle, kein setzen auf den nächsten State |
StopSkip() | Stop die Animation und setzt die ModelAnimation auf den nächsten State |
StopUndo() | Stop die Animation und setzt die ModelAnimation auf den aktuellen State zurück |
Play() | Startet eine Model-Animation. Dies ist eine Sequenz aller States. |
OnSetState() | Installiert eine Funktion, welche die Properties der Stage-Objekte eines bestimmten States setzt |
AnimationToState() | Installiert eine Animation (Animator) für den Übergang von einem State zum nächsten |
NStates | Anzahl selektierbare Zustände der ModelAnimation |
CurrState | Nummer des aktuellen Zustandes |
TargetState | Nummer des Zustandes welchen die Animation erreichen soll |
IsRunning | true wenn eine State-Animation am laufen ist |
IsPlaying | true wenn eine Model-Animation am laufen ist (eine Reihe von Animationen → Play()) |
AutoInit | wenn true (default), wird Init() automatisch per xOnLoad() gerufen. |
AutoPlay | wenn true, wird bei Init() automatisch Play() gestartet |
PauseTime | Zwischen den State-Animationen soll im Play-Modus diese Zeitspanne angehalten werden (in Millisekunden) |
Repeat | Anzahl Wiederholungen der Model-Animation: 0-1: einmal abspielen; >1: mehrmals Abspielen; -1: ständig wiederholen bis Stop() |
ModelRef | Referenz auf ein Modell (siehe Animator.ModelRef) |
CurrAnimation | Aktuelles Animator Objekt der laufenden State-Animation, wenn IsRunning true ist. |
OnModelChange | Callback-Funktion, welche alle vom Modell abhängigen Objekte und Grafiken nachführt |
OnAfterStateChange | Callback-Funktion welche nach jeder Änderung des States oder nach SetState() gerufen wird |
OnStopPlaying | Callback-Funktion welche nach gerufen wird, wenn die Animation stopt |
SetStateFuncList | Liste der Funktionen, welche die Darstellung der Stage-Objekte für einen bestimmten State erzeugen |
ToStateAnimationList | Liste der Animationen von einem State zum nächsten |
myAnimation = NewModelAnimation( Parameters )
Erzeugt ein ModelAnimation Objekt. Ein solches Objekt dient der Animation eines JavaScript-Modells auf einer Webseite. Die Animation zeichnet sich dadurch aus, dass sie mehrere fixe Zustände haben kann, States genannt und dass von von einem Zustand zum nächten in einer Animation gewechselt werden kann.
Mit Parameters können Grundeinstellungen vorgenommen werden:
Im Argument der Funktion NewModelAnimation() können folgende Einstellungen vorgenommen werden. Alle nicht definierten Parameter erhalten Standardwerte.
}
ModelAnimation.Init( )
Init setzt ModelAnimation mit SetState() auf CurrState. Diese Funktion sollte gerufen werden, bevor andere Animtions-Funktionen gerufen werden.
Diese Funktion wird automatisch aufgerufen, wenn das Property AutoInit true ist (default). Sollte dies nicht erwünscht sein, kann das Property AutoInit auf false gesetzt werden.
Vor dem Beenden von Init() werden die Callback-Funktionen OnAfterStateChange und danach OnModelChange gerufen, sofern installiert. Wenn AutoPlay gleich true ist, wird die Animation hier gestartet.
ModelAnimation.UpdateModel( )
Ruft die allenfalls installierte Callback-Funktion OnModelChange auf. Diese Funktion wird intern automatisch an den richtigen Stellen gerufen.
ModelAnimation.Reset( )
Stoppt eine allfällig laufende Animation und setzt die ModelAnimation mit SetState() auf den State 0 zurück.
Vor dem Beenden von Reset werden die Callback-Funktionen OnAfterStateChange und danach OnModelChange gerufen, sofern installiert.
ModelAnimation.SetState( TargetState )
Stoppt eine allenfalls laufende Animation und setzt die ModelAnimation auf den State TargetState ohne eine Übergangs-Animation zu starten.
Der State wird aktiviert, indem eine mit OnSetState() installierte Funktion gerufen wird, welche Modell-Properties ändert. Wenn für den TargetState keine SetState-Funktion installiert ist, jedoch eine Übergangs-Animation für diesen State in der ToStateAnimationList ist, wird diese Animation im Schnellgang während eines Frames abgespielt. Wenn auch keine Animation für TargetState definiert ist, wird einfach CurrState und TargetState auf TargetState gesetzt.
Vor dem Beenden von SetState werden in jedem Fall die Callback-Funktionen OnAfterStateChange und danach OnModelChange gerufen, sofern installiert.
ModelAnimation.SetNextState( Wrap )
Stoppt eine allenfalls laufende Animation und setzt die ModelAnimation mit der Funktoin SetState() auf den nächsten State ohne eine Übergangs-Animation zu starten.
Wrap steuert, was geschehen soll, wenn CurrState der letzte State ist. Ist Wrap = false, wird SetState() mit dem aktuellen CurrState gerufen. Wenn Wrap = true ist, wird der erste State aktiviert.
Der Unterschied zwischen Next() und SetNextState() ist, dass bei Next() der nächste State über eine allenfalls programmierte Animation gesetzt wird, während SetNextState() den nächsten State ohne Animation aktiviert.
Vor dem Beenden von SetNextState werden die Callback-Funktionen OnAfterStateChange und danach OnModelChange gerufen, sofern installiert.
ModelAnimation.SetPrevState( Wrap )
Stoppt eine allenfalls laufende Animation und setzt die ModelAnimation mit der Funktoin SetState() auf dem vorherigen State.
Wrap steuert, was geschehen soll, wenn CurrState der erste State ist. Ist Wrap = false, wird SetState() mit dem aktuellen State 0 gerufen. Wenn Wrap = true ist, wird der letzte State aktiviert.
Vor dem Beenden von SetPrevState werden die Callback-Funktionen OnAfterStateChange und danach OnModelChange gerufen, sofern installiert.
ModelAnimation.ToState( TargetState )
Stoppt eine allenfalls laufende Animation. Wenn für den TargetState eine Übergangs-Animation definiert ist (siehe AnimationToState()), wird zunächst der State TargetState - 1 durch Aufruf von SetState() aktiviert und dann die Übergangs-Animation zum State TargetState gestartet. Wenn keine solche Übergangs-Animation definiert ist, wird mit SetState() der State TargetState direkt aktiviert.
Wenn die Übergangs-Animation mit der Funktion Stop() unterbrochen wird, ist CurrState = TragetState - 1 und TargetState = TargetState. Wenn die Übergangs-Animation beendet ist, werden CurrState = TargetState = TargetState gesetzt.
Vor dem Beenden von ToState werden die Callback-Funktionen OnAfterStateChange und danach OnModelChange gerufen, sofern installiert.
Die Funktion ToState wird intern von den Funktionen Next() und Prev() gerufen.
ModelAnimation.Next( Wrap )
Wrap steuert, was geschehen soll, wenn CurrState der letzte State ist. Ist Wrap = false, wird SetState() mit dem aktuellen CurrState gerufen. Wenn Wrap = true ist, wird ToState() mit dem TargetState 0 gerufen.
Stoppt eine allenfalls laufende Animation und setzt die ModelAnimation wiefolgt auf den nächsten State:
Zustand | Aktion |
---|---|
Animation läuft nicht (IsRunning = false), es ist nicht der letzte State angewählt (CurrState < NStates-1) | Es wird mit ToState() die Animation auf den nächsten State (CurrState+1) gestartet |
Animation läuft nicht, letzter State ist angewählt, Wrap = true | Es wird mit ToState() die Animation auf den ersten State gestartet |
Animation läuft nicht, letzter State ist angewählt, Wrap = false | Es wird mit SetState() der aktuelle State CurrState nochmals angewählt |
Animation wurde mit Stop() abgebrochen, sodass CurrState != TargetState ist | Es wird mit ToState() die Animation auf den höheren der beiden States gestartet |
Animation läuft bereits | Animation wird übersprungen, indem sie mit Stop() angehalten und mit SetState() der höhere der beiden States CurrState oder TargetState direkt angewählt wird |
Der Unterschied zwischen Next() und SetNextState() ist, dass bei Next() der nächste State über eine allenfalls programmierte Animation angewählt wird, während SetNextState() den nächsten State ohne Animation anwählt.
Nach dem Beenden der Animation wird zusätzlich mit SetState() der TargetState angewählt. Dadurch werden die Callback-Funktionen OnAfterStateChange und danach OnModelChange gerufen, sofern installiert.
ModelAnimation.Prev( Wrap )
Wrap steuert, was geschehen soll, wenn CurrState der erste State ist. Ist Wrap = false, wird SetState() mit dem aktuellen CurrState gerufen. Wenn Wrap = true ist, wird ToState() für den letzten State gerufen.
Stoppt eine allenfalls laufende Animation und setzt die ModelAnimation wiefolgt auf den vorherigen State:
Zustand | Aktion |
---|---|
Animation läuft nicht (IsRunning = false), es ist nicht der erste State angewählt (CurrState > 0) | Es wird mit ToState() die Animation auf den vorherigen State (CurrState-1) gestartet |
Animation läuft nicht, erster State ist angewählt, Wrap = true | Es wird mit ToState() die Animation auf den letzen State gestartet |
Animation läuft nicht, erster State ist angewählt, Wrap = false | Es wird mit SetState() der aktuelle State (CurrState = 0) nochmals angewählt |
Animation wurde mit Stop() abgebrochen, sodass CurrState != TargetState ist | Es wird mit ToState() die Animation auf den niedrigeren der beiden States gestartet |
Animation läuft bereits | Animation wird übersprungen, indem sie mit Stop() angehalten und mit SetState() der niedrigere der beiden States CurrState oder TargetState direkt angewählt wird |
Der Unterschied zwischen Prev() und SetPrevState() ist, dass bei Prev() der vorherige State über eine allenfalls programmierte Animation für diesen State angewählt wird, während SetPrevState() den vorherigen State ohne Animation anwählt.
Nach dem Beenden der Animation wird zusätzlich mit SetState() der TargetState angewählt. Dadurch werden die Callback-Funktionen OnAfterStateChange und danach OnModelChange gerufen, sofern installiert.
ModelAnimation.Stop( )
Stoppt eine allenfalls laufende Übergangs-Animation zwischen zwei States an der aktuellen Stelle und stoppt eine allenfalls laufende Model-Animation (siehe Play()).
Der TargetState wird nicht aktiviert! Die ModelAnimation befindet sich also in einem Zustand zwischen CurrState und TargetState.
Mit folgenden Funktionen kann ein definierter State aktiviert werden:
Reset() | aktiviert den ersten State 0 ohne Animation |
Next() | wiederholt die aktuelle Animation und aktiviert danach den TargetState |
SetNextState() | aktiviert den TargetState ohne Animation |
SetState() | aktiviert einen belibigen State ohne Animation |
ToState() | aktiviert einen belibigen State mit Animation |
Nach dem Stoppen der Animation werden die Callback-Funktionen OnAfterStateChange mit CurrState und danach OnModelChange gerufen, sofern installiert.
ModelAnimation.StopSkip( )
Stoppt eine allenfalls laufende Übergangs-Animation zwischen zwei States an der aktuellen Stelle, stoppt eine allenfalls laufende Model-Animation (siehe Play()) und setzt die ModelAnimation mit der Funktion SetState() direkt auf den TargetState. SetState() wird auch gerufen, wenn keine Übergangs-Animation am laufen ist.
Nach dem Stoppen der Animation werden die Callback-Funktionen OnAfterStateChange mit CurrState und danach OnModelChange gerufen, sofern installiert.
ModelAnimation.StopUndo( )
Stoppt eine allenfalls laufende Übergangs-Animation zwischen zwei States an der aktuellen Stelle, stoppt eine allenfalls laufende Model-Animation (siehe Play()) und setzt die ModelAnimation mit der Funktion SetState() direkt auf den vor der Animation angewählten CurrState. SetState() wird auch gerufen, wenn keine Übergangs-Animation am laufen ist.
Nach dem Stoppen der Animation werden die Callback-Funktionen OnAfterStateChange mit CurrState und danach OnModelChange gerufen, sofern installiert.
ModelAnimation.Play( Repeat, PauseTime )
Die Sequenz von NStates Zuständen mit allenfalls definierten Übergangs-Animationen kann durch Aufruf von Play automatisch vom CurrState an hintereinander abgespielt werden. Diese Abspiel-Sequenz wird als Model-Animation bezeichnet.
Mit Repeat kann gesteuert werden, ob und wievielmal die Model-Animation wiederholt werden soll.
Repeat | Beschreibung |
---|---|
0, 1 | Model-Animation genau einmal vom CurrState bis zum letzten State ablaufen lassen |
> 1 | Model-Animation N mal durchlaufen lassen |
-1 | Model-Animation unbeschränkt wiederholen bis Stop() oder eine andere Funktion gerufen wird, welche intern Stop() ruft. |
Achtung: Wenn die Animation auf jeden Fall beim ersten State beginnen soll, kann vorher Reset() gerufen werden.
Mit PauseTime kann eine Pause zwischen zwei Übergangs-Animation festgelegt werden. Wird PauseTime nicht angegeben, gilt der Wert von PauseTime, welcher z.B. bei NewModelAnimation() eingestellt werden kann.
Wenn eine Model-Animation läuft, ist IsPlaying = true. Wird Play gerufen, während eine Model-Animation bereits läuft, wird die ganze Animation an der aktuellen Stelle mit Stop() angehalten. Ein erneuter Aufruf von Play an dieser Stelle startet die Model-Animation an der aktuellen Stelle, wobei die nicht fertig ausgeführte letzte Übergangs-Animation erneut gestartet wird.
Wenn AutoPlay bei NewModelAnimation() true gesetzt wird, wird Play beim Aufruf von Init() aufgerufen.
Nach dem Erreichen jedes States werden die Callback-Funktionen OnAfterStateChange mit CurrState und danach OnModelChange gerufen, sofern installiert.
ModelAnimation.OnSetState( StateId, SetStateFunc )
Installiert eine Callback-Funktion, welche die Model-Properties auf dem State StateId entsprechende Werte setzt.
Die Callback-Funktion wird intern immer dann gerufen, wenn ein definierter State angewählt wird (siehe z.B. SetState()).
myModelAnimator.OnSetState( id, function(anim) { var model = anim.ModelRef; model.Prop = ...; : } );
ModelAnimation.AnimationToState( StateId, Parameter )
Erzeugt eine Übergangs-Animation vom State StateId-1 auf den State StateId. Wenn StateId = 0 ist, wird eine Animation vom letzten State auf den ersten State erzeugt.
Die Übergangs-Animation wird über die Funktion NewAnimation() erzeugt, indem ihr Parameter übergeben wird. Mit dem Objekt Parameter ist die Animation vollständig beschrieben.
Wenn für einen State keine Übergangsanimation definiert wird, wird der entsprechende State mit den Funktionen ToState(), Next() und Prev() ohne Animation direkt aktiviert (siehe SetState()).
AnimationToState speichert den erzeugten Animator in der Liste ToStateAnimationList und gibt ihn als Returnwert zurück.
ModelAnimation.NStates: Integer(>0); ReadOnly; Init = 2; → NewModelAnimation()
Eine ModelAnimation verwaltet eine Anzahl States. Jedem State ist ein Zustand seiner Stage-Objekte zugeordnet, z.B. welche in einem State sichtbar oder unsichtbar sind, ihre Positionen usw.
Die Zustände der Stage-Objekte können mit Callback-Funktionen definiert werden, welche mit der Funktion OnSetState() in der ModelAnimation installiert werden. Wenn für einen State keine solche Funktion installiert wird, werden die Stage-Objekte beim Setzen des States z.B. mit SetState() nicht verändert.
ModelAnimation.CurrState: Integer(>=0); ReadOnly; Init = 0
In CurrState ist die Nummer des angewählten States gespeichert. Der erste State hat die Nummer 0.
Wenn eine Übergangs-Animation zu einem State X mit Stop() abgebrochen wird, enthält CurrState den zuletzt angewählten State und TargetState ist X.
ModelAnimation.TargetState: Integer(>=0); ReadOnly; Init = 0
In TargetState ist die Nummer des nächsten mit einer zugehörigen Übergangs-Animation versehenen States gespeichert. Der erste State hat die Nummer 0.
Wenn eine Übergangs-Animation zu einem State X mit Stop() abgebrochen wird, enthält CurrState den zuletzt angewählten State und TargetState ist X.
ModelAnimation.IsRunning: Boolean; ReadOnly; Init = false
Wenn eine Übergangs-Animation von einem State zum nächsten gerade aktiv ist (siehe Funktion Next()), hat IsRunnging den Wert true, sonst false.
ModelAnimation.IsPlaying: Boolean; ReadOnly; Init = false
Wenn eine Model-Animation aktiv ist (siehe Play()), hat IsPlaying den Wert true, sonst false.
ModelAnimation.AutoInit: Boolean; ReadOnly; Init = true
Wenn AutoInit true ist (default), wird die Animation automatisch per xOnLoad() durch den Aufruf der Funktion Init() initialisiert.
Soll die Animation nicht automatisch initialisiert werden, kann AutoInit bei NewModelAnimation() auf false gesetzt werden.
Für weitere Infos siehe Init().
ModelAnimation.AutoPlay: Boolean; ReadOnly; Init = false
Wenn AutoPlay bei NewModelAnimation() true gesetzt wird, wird bei der Funktion Init() die Model-Animation mit Play() gestartet.
ModelAnimation.PauseTime: Integer(>=0); ReadOnly; Init = 1000
Pause in Millisekunden, die bei Abspielen einer Model-Animation (siehe Play()) zwischen zwei Übergangs-Animationen eingelegt werden soll.
PauseTime kann bei NewModelAnimation() oder bei Play() eingestellt werden.
ModelAnimation.Repeat: Integer(-1,0..); ReadOnly; Init = 0
Mit Repeat kann gesteuert werden, ob und wievielmal eine Model-Animation wiederholt werden soll.
Repeat kann bei NewModelAnimation() oder bei Play() eingestellt werden.
Repeat | Beschreibung |
---|---|
0, 1 | Model-Animation genau einmal vom CurrState bis zum letzten State ablaufen lassen |
> 1 | Model-Animation N mal durchlaufen lassen |
-1 | Model-Animation unbeschränkt wiederholen bis Stop() oder eine andere Funktion gerufen wird, welche intern Stop() ruft. |
ModelAnimation.ModelRef: Any; ReadOnly; Init = null; → NewModelAnimation()
Referenz auf ein Modell. Sofern diese Referenz definiert wird, wird sie in der Funktion AnimationToState() an Animator Objekte vererbt, bei denen keine ModelRef definiert ist. Siehe Animator.ModelRef für die Beschreibung des Formates.
ModelAnimation.CurrAnimation: Animator; ReadOnly; Init = null
Wenn gerade eine Übergangs-Animation von einem State zum nächsten aktiv ist (siehe Funktion Next() und Property IsRunning), zeigt CurrAnimation auf das entsprechende Animator Objekt. Ist keine Animation aktiv, enthält CurrAnimation den Wert null.
ModelAnimation.OnModelChange: Function(this); ReadOnly; Init = null → NewModelAnimation()
Diese Callback-Funktion wird gerufen, um vom Modell abhängige Objekte und Grafiken neu zu berechnen und zu zeichnen. Diese Callback-Funktion wird in der Funktion AnimationToState() an Animator Objekte vererbt, bei denen keine eigene Animator.OnModelChange Funktion definiert wird.
ModelAnimation.OnAfterStateChange: Function(this,CurrState); Init = null
Diese Callback-Funktion wird immer gerufen, wenn ein State angewählt wurde (siehe z.B. Next(), SetState() usw.). Die Callback-Funktion kann jederzeit dem Property OnAfterStateChange zugewiesen werden oder sie kann beim Erzeugen der ModelAnimation mit NewModelAnimation() als Parameter übergeben werden.
Anwendung: Diese Callback-Funktion kann z.B. einen Button als selektiert markieren, welcher dem State zugeordnet ist. Dadurch wird der gerade selektierte State dem User angezeigt.
ModelAnimation.OnStopPlaying: Function(this,CurrState); Init = null
Diese Callback-Funktion wird immer gerufen, wenn eine Animation im Play-Mode gestopt wird. Die Callback-Funktion kann jederzeit dem Property OnStopPlaying zugewiesen werden oder sie kann beim Erzeugen der ModelAnimation mit NewModelAnimation() als Parameter übergeben werden.
Anwendung: Diese Callback-Funktion kann z.B. den Zustand eines Play/Stop Buttons nachführen.
ModelAnimation.SetStateFuncList: Array(NStates) of Function(this); ReadOnly; Init = [null,...]; → OnSetState()
In dieser Liste werden alle Callback-Funktionen gespeichert, welche die Stage-Objekte auf den jeweiligen State setzen. Die Callback-Funktionen werden mit der Funktion OnSetState() in der ModelAnimation installiert.
SetState() Funktionen sind optional. Wenn für einen State keine SetState Funktion definiert ist, jedoch einen ToStateAnimation, wird diese Animation in einem einzigen Frame abgespielt um den entsprechenden Zustand des Model zu setzen.
ModelAnimation.ToStateAnimationList: Array(NStates) of Animator; ReadOnly; Init = [null,...] → AnimationToState()
In dieser Liste werden die Animator Objekte gespeichert, welche Übergangs-Animationen von einem State zum nächsten ausführen. Eine Übergangs-Animation wird mit der Funktion AnimationToState() in der ModelAnimation installiert. Übergangs-Animationen sind optional. Es kann auch nur für eine Auswahl von States je eine Übergangsanimation definiert werden.