new()
rotation:Float
scaleX:Float
scaleY:Float
shearX:Float
shearY:Float
translationX:Float
translationY:Float
@:value(0)z:Float = 0
inlinerotate(value:Float):Void
inlinescale(x:Float, y:Float):Void
inlinescale(value:Float):Void
inlinescale(value:Vec2):Void
inlinesetRotation(value:Float):Void
inlinesetScale(x:Float, y:Float):Void
inlinesetScale(value:Vec2):Void
inlinesetShear(x:Float, y:Float):Void
inlinesetShear(value:Vec2):Void
inlinesetTranslation(x:Float, y:Float):Void
inlinesetTranslation(value:Vec2):Void
inlineshear(x:Float, y:Float):Void
inlineshear(value:Vec2):Void
inlinetranslate(x:Float, y:Float):Void
inlinetranslate(value:Float):Void
inlinetranslate(value:Vec2):Void
@:value(new s.shortcut.signals.Signal([]))read onlychildAdded:Signal<(child:T) ‑> Void> = new s.shortcut.signals.Signal([])
Fired when a direct child is added.
@:value(new s.shortcut.signals.Signal([]))read onlychildRemoved:Signal<(child:T) ‑> Void> = new s.shortcut.signals.Signal([])
Fired when a direct child is removed.
read onlychildren:ObjectList<T>
Direct child nodes.
The list manages ownership: adding a node here updates its parent, and removing it detaches it.
@:value(new s.shortcut.signals.Signal([]))read onlydescendantAdded:Signal<(descendant:T) ‑> Void> = new s.shortcut.signals.Signal([])
Fired when any descendant is added anywhere below this node.
@:value(new s.shortcut.signals.Signal([]))read onlydescendantRemoved:Signal<(descendant:T) ‑> Void> = new s.shortcut.signals.Signal([])
Fired when any descendant is removed anywhere below this node.
parent:T
Parent node or null if this node is detached.
null
Assigning this field re-parents the node. Most code should use setParent, removeParent, addChild, or removeChild instead of mutating internal storage directly.
setParent
removeParent
addChild
removeChild
@:value(new s.shortcut.signals.Signal([]))read onlyparentChanged:Signal<(previous:T) ‑> Void> = new s.shortcut.signals.Signal([])
Fired when the parent changes.
tag:String
Optional application-defined tag used for lookup.
Tags are not required to be unique. Methods such as getChild, getChildren, and findChild use this field for simple structural queries.
getChild
getChildren
findChild
addChild(value:T):T
Adds a direct child.
If the child already belongs to another parent, it is re-parented.
Parameters:
value
Child node to add.
Returns:
The added child or null if it is already present.
findChild(tag:String):T
Searches the full descendant tree for the first node with the given tag.
Search order is depth-first in child order.
tag
Tag to match.
The found descendant or null.
getChild(tag:String):T
Returns the first direct child with the given tag.
This only checks direct children and does not recurse into descendants.
The found child or null.
getChildren(tag:String):Array<T>
Returns all direct children with the given tag.
Matching direct children.
iterator():ArrayIterator<T>
Returns an iterator over direct children.
offChildAdded(slot:(child:T) ‑> Void):Bool
offChildRemoved(slot:(child:T) ‑> Void):Bool
offDescendantAdded(slot:(descendant:T) ‑> Void):Bool
offDescendantRemoved(slot:(descendant:T) ‑> Void):Bool
offParentChanged(slot:(previous:T) ‑> Void):Bool
onChildAdded(slot:(child:T) ‑> Void):(child:T) ‑> Void
onChildRemoved(slot:(child:T) ‑> Void):(child:T) ‑> Void
onDescendantAdded(slot:(descendant:T) ‑> Void):(descendant:T) ‑> Void
onDescendantRemoved(slot:(descendant:T) ‑> Void):(descendant:T) ‑> Void
onParentChanged(slot:(previous:T) ‑> Void):(previous:T) ‑> Void
removeChild(value:T):Bool
Removes a direct child.
Child node to remove.
true if the child was removed.
true
removeParent():Void
Detaches this node from its parent.
setParent(value:T):Void
Sets the parent node.
This is equivalent to adding the node to value.children.
value.children
New parent node.
toString():String
Returns a debug-friendly string containing the class name and tag.
traverse(f:T ‑> Void):T
Traverses all descendants depth-first and applies a callback.
The callback receives each descendant, not the root node itself.
f
Callback invoked for each descendant.
This node.