AnimationComponent class
Constructors
- AnimationComponent(String src, {String? state, String? prefix, AssetsCache? cache, CaseSensitivity stateNameSensitivity = CaseSensitivity.insensitive, Mode mode = Mode.forward})
-
For frame-perfect animations, use AnimationComponent.framebased.
The underlining document structure of Boomsheets uses integer frames
and hertz (frames per second) to determine the time that each frame
needs in order to advance. Components using this constructor rely on
elapsed Duration delta-time (dt) in update which may exhibit
occasional frame-skips due to floating point precision drift.
srcis the path of the document withoutprefix.stateis the inital Anim state to set if provided. Ifstateis null, there is no animation data to play from.cacheusesFlame.assetsby default or a different one if provided.stateNameSensitivityis used when fetching Anim states by their name.modedictates how an animation plays. Default is Mode.forward. - AnimationComponent.framebased(String src, {String? state, String? prefix, AssetsCache? cache, CaseSensitivity stateNameSensitivity = CaseSensitivity.insensitive, Mode mode = Mode.forward})
-
This named constructor is best for applications which need frame-perfect
animation behavior. For example deterministic fighting games.
Otherwise see the default constructor AnimationComponent.
srcis the path of the document withoutprefix.stateis the inital Anim state to set if provided. Ifstateis null, there is no animation data to play from.cacheusesFlame.assetsby default or a different one if provided.stateNameSensitivityis used when fetching Anim states by their name.modedictates how an animation plays. Default is Mode.forward.
Properties
-
attrs
→ List<
Attribute> ? -
Fetch currAnim animation attributes or null if not state is set.
no setter
-
children
→ ReadOnlyOrderedSet<
Component> -
The children components of this component.
no setterinherited
- completedThisFrame → bool
-
Returns true if currAnim has finished the last frame of its state.
If currKeyframe is null, the result is always false.
no setter
- currAnim ↔ Anim?
-
If non-null, this is the currently playing animation state.
getter/setter pair
- currentStateName → String
-
If currAnim is null, then the result is the empty String.
Otherwise, this returns the current state name.
no setter
- currKeyframe ↔ IndexedKeyframe?
-
If non-null, this is the frame data that will display on draw.
getter/setter pair
- debugColor ↔ Color
-
The color that the debug output should be rendered with.
getter/setter pairinherited
- debugCoordinatesPrecision ↔ int?
-
How many decimal digits to print when displaying coordinates in the
debug mode. Setting this to null will suppress all coordinates from
the output.
getter/setter pairinherited
- debugMode ↔ bool
-
Returns whether this
Componentis in debug mode or not. When a child is added to theComponentit gets the samedebugModeas its parent has when it is prepared.getter/setter pairinherited - debugPaint → Paint
-
The
debugColorrepresented as a Paint object.no setterinherited - debugTextPaint → TextPaint
-
Returns a
TextPaintobject with thedebugColorset as color for the text.no setterinherited - doc ↔ Document?
-
Upon success, doc contains all well-formed Anim state objects.
getter/setter pair
- elapsedTime ↔ Duration
-
Elapsed seconds
getter/setter pair
- frame ↔ Frametime
-
Elapsed ticks
getter/setter pair
- framebased → bool
-
This is true when constructed by AnimationComponent.framebased.
final
- hasChildren → bool
-
Whether this component has any children.
Avoids the creation of the children container if not necessary.
no setterinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
- isLoaded → bool
-
Whether this component has completed its
onLoadstep.no setterinherited - isLoading → bool
-
Whether the component is currently executing its
onLoadstep.no setterinherited - isMounted → bool
-
Whether this component is currently added to a component tree.
no setterinherited
- isRemoved → bool
-
Whether the component has been removed. Originally this flag is
false, but it becomestrueafter the component was mounted and then removed from its parent. The flag becomesfalseagain when the component is mounted to a new parent.no setterinherited - isRemoving → bool
-
Whether the component is scheduled to be removed.
no setterinherited
- isStateNameInsensitive → bool
-
Query if this can fetch Anim state data with case-insensitivity.
no setter
- key → ComponentKey?
-
A key that can be used to identify this component in the tree.
finalinherited
-
loaded
→ Future<
void> -
A future that completes when this component finishes loading.
no setterinherited
- mode ↔ Mode
-
Each flag in Mode describes how to animate currAnim.
getter/setter pair
-
mounted
→ Future<
void> -
A future that will complete once the component is mounted on its parent.
no setterinherited
- parent ↔ SpriteComponent
-
Who owns this component in the component tree.
getter/setter pairinherited
- priority ↔ int
-
Render priority of this component. This allows you to control the order in
which your components are rendered.
getter/setter pairinherited
-
removed
→ Future<
void> -
A future that completes when this component is removed from its parent.
no setterinherited
- renderContext → ComponentRenderContext?
-
Override this method if you want your component to provide a custom
render context to all its children (recursively).
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- src → String
-
src is the path to the document.
final
-
stateNames
→ List<
String> -
Returns a list of all state names parsed by doc in onLoad.
If doc is null, returns an empty list.
no setter
- stateNameSensitivity → CaseSensitivity
-
By default, state names are CaseSensitivity.insensitive.
final
Methods
-
add(
Component component) → FutureOr< void> -
Schedules
componentto be added as a child to this component.inherited -
addAll(
Iterable< Component> components) → Future<void> -
A convenience method to
addmultiple children at once.inherited -
addToParent(
Component parent) → FutureOr< void> -
Adds this component as a child of
parent(seeaddfor details).inherited -
afterChildrenRendered(
Canvas canvas) → void -
Called once after all children have been rendered in
renderTree.inherited -
ancestors(
{bool includeSelf = false}) → Iterable< Component> -
An iterator producing this component's parent, then its parent's parent,
then the great-grand-parent, and so on, until it reaches a component
without a parent.
inherited
-
componentsAtLocation<
T> (T locationContext, List< T> ? nestedContexts, T? transformContext(CoordinateTransform, T), bool checkContains(Component, T)) → Iterable<Component> -
This is a generic implementation of
componentsAtPoint; refer to those docs for context.inherited -
componentsAtPoint(
Vector2 point, [List< Vector2> ? nestedPoints]) → Iterable<Component> -
An iterable of descendant components intersecting the given point. The
pointis in the local coordinate space.inherited -
contains(
Component c) → bool -
Whether the children list contains the given component.
inherited
-
containsLocalPoint(
Vector2 point) → bool -
Checks whether the
pointis within this component's bounds.inherited -
containsPoint(
Vector2 point) → bool -
Same as
containsLocalPoint, but for a "global"point.inherited -
createComponentSet(
) → OrderedSet< Component> -
This method creates the children container for the current component.
Override this method if you need to have a custom
OrderedSetwithin a particular class.inherited -
descendants(
{bool includeSelf = false, bool reversed = false}) → Iterable< Component> -
Recursively enumerates all nested
children.inherited -
elapse(
double dt) → void -
Advances elapsedTime by
dtfirst by convertingdtto Duration while preserving both seconds and milliseconds granularity. Then it determines the frame data, calls refresh and synchronizes frame with elapsedTime. -
findGame(
) → FlameGame< World> ? -
Fetches the nearest
FlameGameancestor to the component.inherited -
findParent<
T extends Component> ({bool includeSelf = false}) → T? -
Returns the closest parent further up the hierarchy that satisfies type=T,
or null if no such parent can be found.
inherited
-
findRenderContext<
T extends ComponentRenderContext> () → T? -
inherited
-
findRootGame(
) → FlameGame< World> ? -
Fetches the root
FlameGameancestor to the component.inherited -
firstChild<
T extends Component> () → T? -
Returns the first child that matches the given type
T, or null if there are no such children.inherited -
hasState(
String state) → bool -
Queries whether or not doc contains the animation
state. -
lastChild<
T extends Component> () → T? -
Returns the last child that matches the given type
T, or null if there are no such children.inherited -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
onChildrenChanged(
Component child, ChildrenChangeType type) → void -
This method will be invoked from lifecycle if
childhas been added to or removed from its parent children list.inherited -
onGameResize(
Vector2 size) → void -
Called whenever the size of the top-level Canvas changes.
inherited
-
onHotReload(
) → void -
Called when Flutter's hot reload is triggered.
inherited
-
onLoad(
) → void -
This routine concatonates prefix with src before calling
_load. To actually load,AssetsCache.readFileis used to retrieve the bundled document's contents and parse via DocumentReader.fromString. If successfully parsed, all Anim state objects are hashed by their Anim.name value. If is CaseSensitivity.insensitive is desired, all state names are converted to lowercase. -
onMount(
) → void -
Called when the component is added to its parent.
inherited
-
onParentResize(
Vector2 maxSize) → void -
Called whenever the parent of this component changes size; and also once
before
onMount.inherited -
onRemove(
) → void -
Called right before the component is removed from its parent
and also before it changes parents (and is thus temporarily removed
from the component tree).
inherited
-
pointOffset(
String name, {bool considerFlip = false}) → Vector2? -
Given a point
name, returns the offset from the currKeyframe's origin to the matched point as identified in the animation document. This offset can be used attachComponents to aSpriteComponentfor complex animations or special effects. -
propagateToChildren<
T extends Component> (bool handler(T), {bool includeSelf = false}) → bool -
This method first calls the passed handler on the leaves in the tree,
the children without any children of their own.
Then it continues through all other children. The propagation continues
until the handler returns false, which means "do not continue", or when
the handler has been called with all children.
inherited
-
rebalanceChildren(
) → void -
inherited
-
refresh(
{SpriteComponent? target}) → void -
This updates
target's spritesheet visible area to currKeyframe. If currKeyframe is null, then this routine aborts. Iftargetis not provided, it defaults toparent. -
remove(
Component component) → void -
Removes a component from the component tree.
inherited
-
removeAll(
Iterable< Component> components) → void -
Removes all the children in the list and calls
onRemovefor all of them and their children.inherited -
removeFromParent(
) → void -
Remove the component from its parent in the next tick.
inherited
-
removeSyncPoint(
AnimationComponent anim) → void - Removes the child AnimationComponent from its own update list.
-
removeWhere(
bool test(Component c)) → void -
Removes all the children for which the
testfunction returns true.inherited -
render(
Canvas canvas) → void -
inherited
-
renderChild(
Canvas canvas, Component child) → void -
Renders a single
childcomponent ontocanvas.inherited -
renderDebugMode(
Canvas canvas) → void -
inherited
-
renderTree(
Canvas canvas) → void -
inherited
-
setState(
String state, {int? frame, Mode? mode, bool refresh = false}) → void -
On success, sets the currAnim animation state.
Optionally set
frameto jump to a keyframe in that state. Defaultmodeis Mode.forward and overwrites the previous value. Ifrefreshparam is true, AnimationComponent.refresh will run after. -
syncFrametime(
Frametime time) → void - Sets frame and sets the equivalent Duration value for elapsedTime. If this is constructed with AnimationComponent.framebased, then this is the routine you want, in order to change the elapsed time. Otherwise see syncTime.
-
syncPoint(
String label, AnimationComponent anim) → void -
This routine will add
animas a child animation at a pointlabel. That is to say, every update to this, every child will have their frame index set to their parent's value, which will fetch currKeyframe via a subsequent call to refresh. -
syncTime(
Duration time) → void - Sets elapsedTime and sets the equivalent Frametime value for frame. If this is constructed with default constructor AnimationComponent, then this is the routine you want, in order to change the elapsed time. For frame-perfect games, see syncFrametime.
-
tick(
) → void - Advances frame by one, determines the frame data, calls refresh and synchronizes elapsedTime with frame.
-
toString(
) → String -
A string representation of this object.
inherited
-
update(
double dt) → void -
If
dtis zero, this routine aborts. If there is a currKeyframe set, it will have its IndexedKeyframe.newThisFrame flag changed to false. If mode is Mode.stop, only refresh is called. -
updateTree(
double dt) → void -
This method traverses the component tree and calls
updateon all its children according to theirpriorityorder, relative to the priority of the direct siblings, not the children or the ancestors.inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Properties
- prefix ↔ String
-
onLoad looks for anim documents under prefix directory.
Change the value if you want to load from a different directory.
By default the primary directory is under "anims/".
getter/setter pair
-
xtends
↔ List<
Extensions> -
Supported animation extensions to use for all components.
getter/setter pair