SpriteAtlas class

A parsed sprite atlas containing one or more SpriteAtlasPages plus a registry of named SpriteRegions and AtlasAnimationClips.

Loading

// Result is cached by AssetManager — repeated calls for the same path
// return the same atlas without re-parsing or re-uploading textures.
final atlas = await SpriteAtlas.fromAsset('assets/data/heroes.json');

Creating sprites

// Creates a Sprite already wired to the correct region on the atlas page.
// renderSize is set to sourceSize so trimmed sprites display correctly.
final sprite = atlas.createSprite('hero_idle_0',
    position: Offset(100, 200),
    scale: 2.0);
engine.rendering.add(sprite);

Animated sprites

final sprite = atlas.createSprite('hero_run_0', position: Offset(200, 300));
final anim   = atlas.createAnimation('run', sprite);
engine.animation.add(anim);

Runtime clip registration

Clips embedded in the atlas JSON (Aseprite frameTags) are available immediately. Additional / override clips can be registered in code:

atlas.registerClip(AtlasAnimationClip(
  name: 'attack_combo',
  frames: [
    AtlasFrame(regionName: 'hero_attack_0', duration: 0.05),
    AtlasFrame(regionName: 'hero_attack_1', duration: 0.08),
    AtlasFrame(regionName: 'hero_attack_2', duration: 0.12),
  ],
  loop: false,
));

Constructors

SpriteAtlas({required String name, required List<SpriteAtlasPage> pages, required Map<String, SpriteRegion> regions, Map<String, AtlasAnimationClip>? clips})

Properties

clipNames → Iterable<String>
Every clip name registered in this atlas (both parsed and runtime).
no setter
hashCode → int
The hash code for this object.
no setterinherited
name → String
Human-readable name taken from atlas metadata (typically the image file name without extension).
final
pages → List<SpriteAtlasPage>
All texture pages, ordered by page index.
final
regionCount → int
Total number of sprite regions.
no setter
regionNames → Iterable<String>
Every region name packed in this atlas.
no setter
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited

Methods

createAnimation(String clipName, Sprite sprite, {bool? loop, double speed = 1.0, VoidCallback? onComplete}) → AtlasSpriteAnimation
Create an AtlasSpriteAnimation that drives sprite through the named animation clip.
createSprite(String regionName, {Vector3? position, double rotation = 0.0, double scale = 1.0, int layer = 0, int zOrder = 0, bool flipX = false, bool flipY = false}) → Sprite
Create a Sprite backed by the named region on this atlas.
getClip(String name) → AtlasAnimationClip?
Returns the named clip, or null if it does not exist.
getRegion(String name) → SpriteRegion?
Returns the named region, or null if it does not exist in this atlas.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
registerClip(AtlasAnimationClip clip) → void
Register (or replace) an AtlasAnimationClip at runtime.
registerClips(Iterable<AtlasAnimationClip> clips) → void
Convenience: register multiple clips in a single call.
requireClip(String clipName) → AtlasAnimationClip
Returns the named clip.
requireRegion(String regionName) → SpriteRegion
Returns the named region.
toString() → String
A string representation of this object.
override

Operators

operator ==(Object other) → bool
The equality operator.
inherited

Static Methods

fromAsset(String jsonPath) → Future<SpriteAtlas>
Load and parse a sprite atlas from a JSON asset file, returning a fully ready SpriteAtlas with all page textures decoded.