AnimationTrigger class
An AnimationTrigger describes how to automatically animate a property on a GraphObject when it changes value. The target property name is a string, and all name matching is case-sensitive.
Triggers will be shared by all copies of the template's GraphObjects. You can include AnimationTriggers in your templates just like Bindings are included:
$(go.Panel, "Vertical",
// This trigger uses the default value of AnimationTrigger.startCondition:
// If a transaction is ongoing and Panel.position is changed, this trigger will animate
// all changes to Panel.position at the end of the next transaction, in one bundled Animation.
// If no transaction is ongoing, then it will animate this value immediately.
new go.AnimationTrigger("position"),
{
// ... Panel properties
},
$(go.Shape,
// Animate all changes to Shape.opacity immediately
new go.AnimationTrigger("opacity", null, go.AnimationTrigger.Immediate),
{
// ... Shape properties
}
)
When the #startCondition is AnimationTrigger.Default, GoJS will attempt to AnimationTrigger.Bundled or AnimationTrigger.Immediate based on the state of the transaction. If no transaction is ongoing, this trigger will treat the default as using AnimationTrigger.Immediate. Otherwise it will work as AnimationTrigger.Bundled.
When the #startCondition is AnimationTrigger.Bundled, the AnimationManager will use the default animation to prepare a single Animation that begins when the current transaction has ended. This animation may be canceled if a new transaction is started.
When the #startCondition is AnimationTrigger.Immediate, a new animation will be created for every instance of the property changed, and started immediately, and run until completion. This may be useful for cosmetic changes, such as animating the opacity or color of an object on mouseEnter or mouseLeave.
You can only specify properties that exist on the GraphObject, and are also registered with AnimationManager.defineAnimationEffect. By default these properties are:
"position"
"location"
(on Parts)"scale"
"opacity"
"angle"
"desiredSize"
"width"
"height"
"background"
"fill"
(on Shapes)"strokeWidth"
(on Shapes)"strokeDashOffset"
(on Shapes)"stroke"
(on Shapes, TextBlocks)
Examples of defining additional animation properties are given in the Introduction Page on Animations.
- Available extensions
- Annotations
-
- @JS()
- @staticInterop
Constructors
- AnimationTrigger(String propertyName, [IInline0? animationSettings, EnumValue? startCondition])
-
factory
Properties
- hashCode → int
-
The hash code for this object.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Properties
- bundled ↔ EnumValue
-
Used as a value for #startCondition.
The AnimationManager will use the default animation to prepare a single Animation that begins when the current transaction has ended.
This animation may be canceled if a new transaction is started.
getter/setter pair
- default$ ↔ EnumValue
-
Used as a value for #startCondition.
GoJS will attempt to AnimationTrigger.Bundled or AnimationTrigger.Immediate based on the state of the transaction.
If no transaction is ongoing, this trigger will be treated as using AnimationTrigger.Immediate,
otherwise it will work as AnimationTrigger.Bundled.
getter/setter pair
- immediate ↔ EnumValue
-
Used as a value for #startCondition.
A new animation will be created for every instance of the property changed, and started immediately,
and run until completion. This may be useful for cosmetic changes, such as animating
the opacity or color of an object on mouseEnter or mouseLeave.
However, using AnimationTrigger.Bundled may be more efficient, as it will create fewer
getter/setter pair