WaBis

walter.bislins.ch

ANIM: ModelAnimation

ModelAnimation Klasse

ModelAnimation = {
NStates: Integer(>0); ReadOnly; Init = 2 → NewModelAnimation()
CurrState: Integer(0..NStates-1); ReadOnly; Init = → NewModelAnimation()
TargetState: Integer(0..NStates-1); ReadOnly; Init = CurrStateNewModelAnimation()
IsRunning: Boolean; ReadOnly; Init = false
IsPlaying: Boolean; ReadOnly; Init = false
AutoInit: Boolean; ReadOnly; Init = true → NewModelAnimation()
AutoPlay: Boolean; ReadOnly; Init = false → NewModelAnimation()
PauseTime: Integer(>=0); ReadOnly; Init = 1000 → NewModelAnimation()
Repeat: Integer(-1,>=0; ReadOnly; Init = 0 → NewModelAnimation()
ModelRef: Any; ReadOnly; Init = null → NewModelAnimation()
CurrAnimation: Animator; ReadOnly; Init = null
OnModelChange: Function(this); ReadOnly; Init = null → NewModelAnimation()
OnAfterStateChange: Function(this,CurrState); Init = null → NewModelAnimation()
OnStopPlaying: Function(this,CurrState); Init = null → NewModelAnimation()
SetStateFuncList: Array(NStates) of Function(this); ReadOnly; Init = [null,...] → OnSetState()
ToStateAnimationList: Array(NStates) of Animator; ReadOnly; Init = [null,...] → AnimationToState()
}

ModelAnimation Funktionen

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

ModelAnimation Properties

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

NewModelAnimation()

myAnimation = NewModelAnimation( Parameters )

Parameters: ModelAnimationDef; Optional; Default = { }
Return: ModelAnimation

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:

ModelAnimationDef

Im Argument der Funktion NewModelAnimation() können folgende Einstellungen vorgenommen werden. Alle nicht definierten Parameter erhalten Standardwerte.

ModelAnimationDef = {
NStates: Integer(>=2); Optional; Default = 2
Anzahl Zustände, welche die ModelAnimation annehmen kann
ModelRef: Any; Optional; Default = null
Referenz auf das JavaScript-Modell, welches animiert wird
OnModelChange: Function(this); Optional; Default = null
Callback-Funktion zum Zeichnen und Updaten aller vom Modell abhängigen Objekte
OnAfterStateChange: Function(this,CurrState); Optional; Default = null
Callback-Funktion, die nach jeder Änderung des States gerufen werden soll.
OnStopPlaying: Function(this,CurrState); Optional; Default = null
Callback-Funktion, die nach einem Stop gerufen werden soll.
CurrState: Integer(0..NStates-1); Optional; Default = 0
Initialer Zustand der ModelAnimation, siehe auch TargetState
PauseTime: Integer(>=0); Optional; Default = 1000
Zeit in Millisekunden zwischen zwei Animationen im Play()-Modus
Repeat: Integer(-1,>=0); Optional; Default = 0
Anzahl Wiederholungen der Model-Animation im Play()-Modus: 0-1: einmal abspielen; >1: mehrmals Abspielen; -1: ständig wiederholen bis Stop()
AutoInit: Boolean; Optional; Default = true
wenn true (default) wird Init() automatisch per xOnLoad() aufgerufen
AutoPlay: Boolean; Optional; Default = false
wenn true wird bei Init() die Funktion Play() gerufen
}

ModelAnimation.Init()

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()

ModelAnimation.UpdateModel( )

Ruft die allenfalls installierte Callback-Funktion OnModelChange auf. Diese Funktion wird intern automatisch an den richtigen Stellen gerufen.

ModelAnimation.Reset()

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()

ModelAnimation.SetState( TargetState )

TargetState: Integer(0..NStates-1)

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()

ModelAnimation.SetNextState( Wrap )

Wrap: Boolean; Optional; Default = false

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()

ModelAnimation.SetPrevState( Wrap )

Wrap: Boolean; Optional; Default = false

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()

ModelAnimation.ToState( TargetState )

TargetState: Integer(0..NStates-1)

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()

ModelAnimation.Next( Wrap )

Wrap: Boolean; Optional; Default = false

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()

ModelAnimation.Prev( Wrap )

Wrap: Boolean; Optional; Default = false

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()

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()

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()

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()

ModelAnimation.Play( Repeat, PauseTime )

Repeat: Integer(-1,0..); Optional; Default = 0
Anzahl Wiederholungen der Model-Animation
PauseTime: Integer(>=0); Optional; Default = PauseTime
Zeitverzögerung in Millisekunden zwischen zwei Übergangs-Animationen

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()

ModelAnimation.OnSetState( StateId, SetStateFunc )

StateId: Integer(0..NStates-1)
SetStateFunc: Function(ModelAnimation)

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()

ModelAnimation.AnimationToState( StateId, Parameter )

StateId: Integer(0..NStates-1)
Parameter: AnimatorDefinition
Return: Animator

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

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

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

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

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

ModelAnimation.IsPlaying: Boolean; ReadOnly; Init = false 

Wenn eine Model-Animation aktiv ist (siehe Play()), hat IsPlaying den Wert true, sonst false.

ModelAnimation.AutoInit

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

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

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

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

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

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

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

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

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

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

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.

Weitere Infos zur Seite
Erzeugt Freitag, 24. April 2015
von wabis
Zum Seitenanfang
Geändert Donnerstag, 8. Februar 2018
von wabis