Abstract Class: Scene
Defined in: nodes/base/scene-node.ts:22
The Rectangle is the only node that performs flex / stack layout on its
children. It measures and positions children according to group
(row | column | stack), gap, alignment, and padding, then draws
itself as a rounded rect behind them.
Extends
Constructors
Constructor
new Scene(
config?):Scene
Defined in: nodes/base/scene-node.ts:30
Parameters
config?
BaseSceneConfig = {}
Returns
Scene
Overrides
Properties
__mappers?
optional__mappers?:Map<string, (ext,prev?) =>any>
Defined in: nodes/base/node.ts:197
Maps external prop value → internal cell value for fields that need it.
Inherited from
__signals?
optional__signals?:Map<string,Signal<any>>
Defined in: nodes/base/node.ts:193
Inherited from
__tweens?
optional__tweens?:Map<string,TweenFn<any>>
Defined in: nodes/base/node.ts:195
Inherited from
__upgraders?
optional__upgraders?:Map<string, () =>Signal<any>>
Defined in: nodes/base/node.ts:194
Inherited from
alignment
readonlyalignment:Vector2
Defined in: nodes/geometry/rect-node.ts:64
Inherited from
borderRadius
readonlyborderRadius:BorderRadiusResolved
Defined in: nodes/geometry/rect-node.ts:66
Inherited from
clip
readonlyclip:boolean
Defined in: nodes/geometry/shape-node.ts:64
Inherited from
colSpan
readonlycolSpan:number
Defined in: nodes/base/node.ts:215
Inherited from
column
readonlycolumn:number|undefined
Defined in: nodes/base/node.ts:213
Inherited from
effects
readonlyeffects:SceneEffect[]
Defined in: nodes/base/node.ts:208
Inherited from
end
readonlyend:number
Defined in: nodes/geometry/shape-node.ts:61
Inherited from
fill
readonlyfill:FillResolved[]
Defined in: nodes/geometry/shape-node.ts:48
Inherited from
flex
readonlyflex:number
Defined in: nodes/base/node.ts:212
Inherited from
gap
readonlygap:GapSize
Defined in: nodes/geometry/rect-node.ts:63
Inherited from
group
group:
LayoutMode
Defined in: nodes/geometry/rect-node.ts:68
Inherited from
height
readonlyheight:SizeInput
Defined in: nodes/base/node.ts:204
Inherited from
id
readonlyid:string
Defined in: nodes/base/node.ts:191
Inherited from
opacity
readonlyopacity:number
Defined in: nodes/base/node.ts:207
Inherited from
padding
readonlypadding:PaddingResolved
Defined in: nodes/base/node.ts:209
Inherited from
pivot
readonlypivot:Vector2
Defined in: nodes/base/node.ts:210
Inherited from
rotation
readonlyrotation:number
Defined in: nodes/base/node.ts:206
Inherited from
row
readonlyrow:number|undefined
Defined in: nodes/base/node.ts:214
Inherited from
rowSpan
readonlyrowSpan:number
Defined in: nodes/base/node.ts:216
Inherited from
scale
readonlyscale:number
Defined in: nodes/base/node.ts:205
Inherited from
scenes
readonlyscenes:Scene[]
Defined in: nodes/base/scene-node.ts:25
Child scenes declared up-front. Used by buildChildren() and asset preloading.
shadow
readonlyshadow:ShadowResolved[]
Defined in: nodes/geometry/shape-node.ts:55
Inherited from
start
readonlystart:number
Defined in: nodes/geometry/shape-node.ts:58
Inherited from
stroke
readonlystroke:StrokeResolved[]
Defined in: nodes/geometry/shape-node.ts:52
Inherited from
width
readonlywidth:SizeInput
Defined in: nodes/base/node.ts:203
Inherited from
x
readonlyx:number
Defined in: nodes/base/node.ts:201
Inherited from
y
readonlyy:number
Defined in: nodes/base/node.ts:202
Inherited from
Accessors
assets
Get Signature
get assets():
AssetCatalog
Defined in: nodes/base/node.ts:181
Returns
Inherited from
bottomCenter
Get Signature
get bottomCenter():
Vector2
Defined in: nodes/base/node.ts:669
Returns
Inherited from
bottomLeft
Get Signature
get bottomLeft():
Vector2
Defined in: nodes/base/node.ts:654
Returns
Inherited from
bottomRight
Get Signature
get bottomRight():
Vector2
Defined in: nodes/base/node.ts:659
Returns
Inherited from
center
Get Signature
get center():
Vector2
Defined in: nodes/base/node.ts:640
Center of the node — equivalent to its x/y position (0,0 is the center of the layout cell).
Returns
Inherited from
children
Get Signature
Defined in: nodes/base/node.ts:694
Returns
Inherited from
clock
Get Signature
get clock():
Readonly<NodeClock>
Defined in: nodes/base/node.ts:569
Internal timing state.
Returns
Readonly<NodeClock>
Inherited from
leftCenter
Get Signature
get leftCenter():
Vector2
Defined in: nodes/base/node.ts:674
Returns
Inherited from
measuredHeight
Get Signature
get measuredHeight():
number
Defined in: nodes/base/node.ts:617
Returns
number
Inherited from
measuredWidth
Get Signature
get measuredWidth():
number
Defined in: nodes/base/node.ts:613
Returns
number
Inherited from
name
Get Signature
get name():
string
Defined in: nodes/base/node.ts:378
Returns
string
Inherited from
parent
Get Signature
Defined in: nodes/base/node.ts:177
Returns
Inherited from
properties
Get Signature
get properties():
P
Defined in: nodes/base/node.ts:368
Returns
P
Inherited from
rightCenter
Get Signature
get rightCenter():
Vector2
Defined in: nodes/base/node.ts:679
Returns
Inherited from
topCenter
Get Signature
get topCenter():
Vector2
Defined in: nodes/base/node.ts:664
Returns
Inherited from
topLeft
Get Signature
get topLeft():
Vector2
Defined in: nodes/base/node.ts:644
Returns
Inherited from
topRight
Get Signature
get topRight():
Vector2
Defined in: nodes/base/node.ts:649
Returns
Inherited from
Methods
_prepareStep()
_prepareStep(
to,duration,easing?):TweenStepper
Defined in: nodes/base/node.ts:404
Resolve a single to() step into a flat TweenStepper — all the
per-key setup (anchor handling, mapper, numeric-vs-custom routing) happens
once here, then advance(dt) is allocation-free. Used by both the
generator path (_toGen) and the batched parallel path.
Parameters
to
Partial<P>
duration
number
easing?
Returns
Inherited from
_toGen()
_toGen(
to,duration,easing?):FrameGenerator
Defined in: nodes/base/node.ts:480
Parameters
to
Partial<P>
duration
number
easing?
Returns
Inherited from
add()
add(
node):void
Defined in: nodes/base/scene-node.ts:62
Add a node (or array of nodes) as a child of this scene.
Parameters
node
Node<NodeProps> | Node<NodeProps>[]
Returns
void
addChild()
addChild(
child):void
Defined in: nodes/base/node.ts:698
Parameters
child
Returns
void
Inherited from
addChildAt()
Call Signature
addChildAt(
child,index):void
Defined in: nodes/base/node.ts:725
Parameters
child
index
number
Returns
void
Inherited from
Call Signature
addChildAt(
child,index,duration,easing?):FrameGenerator
Defined in: nodes/base/node.ts:726
Parameters
child
index
number
duration
number
easing?
Returns
Inherited from
addChildren()
addChildren(
children):void
Defined in: nodes/base/node.ts:713
Parameters
children
Returns
void
Inherited from
afterRender()
afterRender(
ctx):void
Defined in: nodes/base/node.ts:815
Parameters
ctx
Returns
void
Inherited from
beforeRender()
beforeRender(
ctx):void
Defined in: nodes/base/node.ts:786
Parameters
ctx
Returns
void
Inherited from
bindAssets()
bindAssets(
context):void
Defined in: nodes/base/node.ts:588
Parameters
context
Returns
void
Inherited from
build()
abstractbuild(stage):FrameGenerator
Defined in: nodes/base/scene-node.ts:59
Parameters
stage
Returns
buildAll()
buildAll(
stage):FrameGenerator
Defined in: nodes/base/scene-node.ts:161
Run every child scene in order via buildChild().
Parameters
stage
Returns
clearChildren()
clearChildren():
void
Defined in: nodes/base/node.ts:720
Returns
void
Inherited from
dispose()
dispose():
void
Defined in: nodes/base/scene-node.ts:167
Returns
void
Overrides
ellapse()
ellapse(
totalTime):void
Defined in: nodes/base/node.ts:573
Parameters
totalTime
number
Returns
void
Inherited from
fadeTo()
fadeTo(
opacity,duration,ease?):FrameGenerator
Defined in: nodes/base/node.ts:530
Animate opacity to the target value.
Parameters
opacity
number
Target opacity in the range [0, 1].
duration
number
ease?
Returns
Example
yield* node.fadeTo(0, 0.3); // fade out
yield* node.fadeTo(1, 0.3); // fade in
Inherited from
isAutoSize()
isAutoSize(
axis):boolean
Defined in: nodes/base/node.ts:684
Parameters
axis
"width" | "height"
Returns
boolean
Inherited from
layout()
layout(
rect,scope):void
Defined in: nodes/geometry/rect-node.ts:218
Parameters
rect
scope
Returns
void
Inherited from
measure()
measure(
constraints,scope):Partial<Size2D>
Defined in: nodes/geometry/rect-node.ts:181
Parameters
constraints
scope
Returns
Partial<Size2D>
Inherited from
moveTo()
moveTo(
x,y,duration,ease?):FrameGenerator
Defined in: nodes/base/node.ts:498
Animate both x and y to the given position.
Parameters
x
number
y
number
duration
number
ease?
Returns
Example
yield* node.moveTo(200, 100, 0.5, ease.outCubic);
Inherited from
moveX()
moveX(
x,duration,ease?):FrameGenerator
Defined in: nodes/base/node.ts:508
Animate only the horizontal position (x).
Parameters
x
number
duration
number
ease?
Returns
Example
yield* node.moveX(300, 0.4);
Inherited from
moveY()
moveY(
y,duration,ease?):FrameGenerator
Defined in: nodes/base/node.ts:518
Animate only the vertical position (y).
Parameters
y
number
duration
number
ease?
Returns
Example
yield* node.moveY(-50, 0.4);
Inherited from
onRender()
onRender(
ctx):void
Defined in: nodes/geometry/shape-node.ts:167
Parameters
ctx
Returns
void
Inherited from
playSound()
playSound(
src,opts?):FrameGenerator
Defined in: nodes/base/scene-node.ts:101
Play a sound on the scene's audio timeline. Blocks for the clip's duration.
Use as yield* this.playSound(...) inside a scene generator.
Parameters
src
string | Sound
opts?
Omit<SoundProps, "src">
Returns
prepare()
prepare(
tracker):void
Defined in: nodes/base/scene-node.ts:120
Parameters
tracker
Returns
void
Overrides
prepareAssets()
prepareAssets(
storage):void
Defined in: nodes/base/node.ts:606
Parameters
storage
Returns
void
Inherited from
removeChild()
Defined in: nodes/base/node.ts:705
Parameters
child
Returns
Inherited from
removeChildAt()
Call Signature
Defined in: nodes/base/node.ts:738
Parameters
index
number
Returns
Inherited from
Call Signature
removeChildAt(
index,duration,easing?):FrameGenerator
Defined in: nodes/base/node.ts:739
Parameters
index
number
duration
number
easing?
Returns
Inherited from
render()
render(
ctx):void
Defined in: nodes/base/node.ts:819
Parameters
ctx
Returns
void
Inherited from
renderChildren()
renderChildren(
ctx):void
Defined in: nodes/base/node.ts:782
Parameters
ctx
Returns
void
Inherited from
reparent()
Call Signature
reparent(
newParent):void
Defined in: nodes/base/node.ts:845
Parameters
newParent
Returns
void
Inherited from
Call Signature
reparent(
newParent,duration,easing?):FrameGenerator
Defined in: nodes/base/node.ts:846
Parameters
newParent
duration
number
easing?
Returns
Inherited from
reset()
reset():
void
Defined in: nodes/base/scene-node.ts:43
Clear all dynamically-added children and managed sounds, and reset the clock.
Returns
void
resolveSizeInput()
resolveSizeInput(
sizeInput,availableSize,childrenSize):number
Defined in: nodes/base/node.ts:688
Parameters
sizeInput
SizeInput
availableSize
number
childrenSize
number
Returns
number
Inherited from
rotateTo()
rotateTo(
rotation,duration,ease?):FrameGenerator
Defined in: nodes/base/node.ts:540
Animate rotate to the target angle (degrees, clockwise).
Parameters
rotation
number
duration
number
ease?
Returns
Example
yield* node.rotateTo(180, 0.6, ease.inOutQuad);
Inherited from
scaleTo()
scaleTo(
scale,duration,ease?):FrameGenerator
Defined in: nodes/base/node.ts:551
Animate scale to the target factor.
Parameters
scale
number
duration
number
ease?
Returns
Example
yield* node.scaleTo(1.5, 0.4); // grow
yield* node.scaleTo(0, 0.3); // shrink to nothing
Inherited from
set()
set(
props):void
Defined in: nodes/base/node.ts:382
Parameters
props
alignment?
Per-axis alignment of children within the content box (-1…1).
borderRadius?
BorderRadiusProps | (() => BorderRadiusProps)
bottomCenter?
Vector2 | (() => Vector2) | (() => Vector2 | (() => Vector2))
bottomLeft?
Vector2 | (() => Vector2) | (() => Vector2 | (() => Vector2))
bottomRight?
Vector2 | (() => Vector2) | (() => Vector2 | (() => Vector2))
center?
Vector2 | (() => Vector2) | (() => Vector2 | (() => Vector2))
children?
Node<NodeProps> | Node<NodeProps>[] | (() => Node<NodeProps> | Node<NodeProps>[])
clip?
boolean | (() => boolean | undefined)
When true, content drawn outside this shape's outline is clipped away.
colSpan?
number | (() => number)
How many grid columns this child spans. Default 1.
column?
number | (() => number)
1-based column index for explicit grid placement. Undefined = auto-placed.
effects?
ChainableFx | (() => ChainableFx)
end?
number | (() => number | undefined)
fill?
ChainableFill | (() => ChainableFill | undefined)
Fill layer(s). Each item can be:
- A plain CSS color string → treated as a solid fill
- A fill prop object (SolidFillProp, LinearGradientFillProp, …)
- An already-resolved fill object
- A FillChain from the
Fillbuilder (e.g.Fill.color('red'))
flex?
number | (() => number)
Proportional share of the free space along the parent's main axis,
relative to sibling fill children (like Flutter's Expanded(flex:)).
Only meaningful when this node fills the main axis — in a row that's
width:'fill', in a column height:'fill'. Two siblings with flex 2
and 1 split the free space 2:1. Defaults to 1. Specifying flex without
an explicit width/height defaults both to 'fill'.
gap?
Spacing between children along the layout's main axis.
group?
LayoutMode | (() => LayoutMode)
Layout mode for children: flex row / column, or overlapping stack.
height?
SizeInput | (() => SizeInput)
leftCenter?
Vector2 | (() => Vector2) | (() => Vector2 | (() => Vector2))
opacity?
number | (() => number)
padding?
PaddingProps | (() => PaddingProps)
Inner spacing between this node's edges and its content/children.
pivot?
Pivot point for rotation and scale. (0,0)=center, (-1,1)=top-left, (1,-1)=bottom-right. Set automatically when an anchor prop is used.
rightCenter?
Vector2 | (() => Vector2) | (() => Vector2 | (() => Vector2))
rotation?
number | (() => number)
row?
number | (() => number)
1-based row index for explicit grid placement. Undefined = auto-placed.
rowSpan?
number | (() => number)
How many grid rows this child spans. Default 1.
scale?
number | (() => number)
shadow?
ShadowProp | ShadowProp[] | (() => ShadowProp | ShadowProp[] | undefined)
Shadow layer(s). fill inside each shadow accepts the same loose
values as the top-level fill prop.
start?
number | (() => number | undefined)
stroke?
StrokeProp | StrokeProp[] | (() => StrokeProp | StrokeProp[] | undefined)
Stroke layer(s). fill inside each stroke accepts the same loose
values as the top-level fill prop.
topCenter?
Vector2 | (() => Vector2) | (() => Vector2 | (() => Vector2))
topLeft?
Vector2 | (() => Vector2) | (() => Vector2 | (() => Vector2))
topRight?
Vector2 | (() => Vector2) | (() => Vector2 | (() => Vector2))
width?
SizeInput | (() => SizeInput)
x?
number | (() => number)
y?
number | (() => number)
Returns
void
Inherited from
startSound()
startSound(
src,opts?):Sound
Defined in: nodes/base/scene-node.ts:78
Start a sound on the scene's audio timeline without blocking, and return
the Sound handle. Pair with stopSound to end playback —
handy for running audio in parallel with visuals without nesting all().
The returned handle stays managed (auto-ticked, auto-prepared) until the scene resets, so you can also let a bounded clip stop on its own.
Parameters
src
string | Sound
opts?
Omit<SoundProps, "src">
Returns
stopSound()
stopSound(
sound):void
Defined in: nodes/base/scene-node.ts:92
Stop a sound started via startSound. No-op if it isn't playing.
Parameters
sound
Returns
void
tick()
tick(
time):void
Defined in: nodes/base/scene-node.ts:55
Parameters
time
number
Returns
void
Overrides
to()
to(
to,duration,easing?):AnimationBuilder<RectProps>
Defined in: nodes/base/node.ts:394
Parameters
to
Partial<P>
duration
number
easing?
Returns
Inherited from
waveform()
waveform():
WaveformInfo[] |undefined
Defined in: nodes/base/scene-node.ts:129
Audio clips owned by this scene, surfaced to the timeline as waveforms. Derived from the scene's managed sounds and their scheduled play ranges.
Returns
WaveformInfo[] | undefined