Class: MaskGroup
Defined in: nodes/base/mask-node.ts:23
Base class for all scene-graph nodes.
Every visible or structural element in a scene extends Node. It wires
together three orthogonal systems:
Reactive properties — fields declared with @property() are backed by
Signals. Reading them inside a reactive context (e.g. a render pass)
creates a subscription; writing them propagates the change automatically.
Use set to update one or more props imperatively, or pass a callback
() => expr to bind the prop to a derived value.
Tweening — *to(props, duration, ease?) is a generator that animates
one or more props to target values over the given duration (in seconds).
Numeric props are interpolated; props that register a custom tween fn (via
@property({ tween })) can animate any value type. The convenience helpers
moveTo, moveX, moveY, fadeTo, rotateTo, and scaleTo wrap to
for the most common single-property animations.
Layout — measure() is called top-down to resolve sizes, then
layout() places the node in its allocated BoxBounds. Children are
measured and laid out by the parent; the base class just stores the rect.
Built-in visual props
| prop | default | unit / notes |
|---|---|---|
x | 0 | horizontal offset in scene pixels |
y | 0 | vertical offset (positive = up) |
width | 'fill' | SizeInput: px, 'fill', 'auto' |
height | 'fill' | same |
scale | 1 | uniform scale factor |
rotate | 0 | degrees, clockwise |
opacity | 1 | 0–1 |
effects | [] | post-process / blend effects |
padding | 0 | inner spacing, all four edges |
Extends
Constructors
Constructor
new MaskGroup(
props):MaskGroup
Defined in: nodes/base/mask-node.ts:28
Parameters
props
NodeConfig<MaskGroup, MaskGroupProps>
Returns
MaskGroup
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
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
flex
readonlyflex:number
Defined in: nodes/base/node.ts:212
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
inverted
inverted:
boolean
Defined in: nodes/base/mask-node.ts:26
mode
mode:
MaskMode
Defined in: nodes/base/mask-node.ts:25
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
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
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
clearChildren()
clearChildren():
void
Defined in: nodes/base/node.ts:720
Returns
void
Inherited from
dispose()
dispose():
void
Defined in: nodes/base/node.ts:925
Returns
void
Inherited from
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/base/node.ts:829
Parameters
rect
_scope
Returns
void
Inherited from
measure()
measure(
constraints,_scope):Partial<Size2D>
Defined in: nodes/base/node.ts:833
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/base/mask-node.ts:34
Parameters
ctx
Returns
void
Overrides
prepare()
prepare(
_storage):void
Defined in: nodes/base/node.ts:593
Parameters
_storage
Returns
void
Inherited from
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
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
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>[])
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)
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'.
height?
SizeInput | (() => SizeInput)
inverted?
boolean | (() => boolean)
leftCenter?
Vector2 | (() => Vector2) | (() => Vector2 | (() => Vector2))
mode?
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)
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
tick()
tick(
_globalTime):void
Defined in: nodes/base/node.ts:564
Parameters
_globalTime
number
Returns
void
Inherited from
to()
to(
to,duration,easing?):AnimationBuilder<MaskGroupProps>
Defined in: nodes/base/node.ts:394
Parameters
to
Partial<P>
duration
number
easing?
Returns
AnimationBuilder<MaskGroupProps>
Inherited from
waveform()
waveform():
WaveformInfo[] |undefined
Defined in: nodes/base/node.ts:602
Audio clips this node owns, surfaced to the timeline as waveforms. The base node has no audio; nodes that do (e.g. Scene) override this. Returns undefined when there is nothing to show.
Returns
WaveformInfo[] | undefined