ExternalNode class

A widget from the app, placed in a scene.

The file holds one TYPED ARGUMENT OBJECT — ExternalNode(const DrinkBadgeArgs(size: 140)) — generated from the app's declaration of that widget. There are no strings here and no closure: the class is the widget's identity, and an argument it does not declare cannot be written. entry is what crosses the editor's wire, where a generated type cannot go.

Inheritance
Available extensions

Constructors

ExternalNode(SceneExtArgs declared, {String name = '', double x = 0, double y = 0, double? width, double? height, SceneColor? fill, SceneColor? borderColor, double borderWidth = 1, double corner = 0, double? cornerTopLeft, double? cornerTopRight, double? cornerBottomRight, double? cornerBottomLeft, double? minWidth, double? maxWidth, double? minHeight, double? maxHeight, double opacity = 1, bool visible = true})
ExternalNode.read(String entry, {String name = '', double x = 0, double y = 0, double? width, double? height, SceneColor? fill, SceneColor? borderColor, double borderWidth = 1, double corner = 0, double? cornerTopLeft, double? cornerTopRight, double? cornerBottomRight, double? cornerBottomLeft, double? minWidth, double? maxWidth, double? minHeight, double? maxHeight, double opacity = 1, bool visible = true, Map<String, Object?>? args})
A node the tool READ — from a scene file it parsed, or from the wire. It has the label and the values but not the generated class, because the editor does not compile the app.

Properties

args → Map<String, Object?>
final
bindings → Map<String, SceneBinding>
Where each property's value comes from, when it is not a literal: property key → SceneBinding.
finalinherited
borderColor ↔ SceneColor?
A line around the node, or none. Two fields rather than one value, because the file's vocabulary is flat named arguments and a Border(...) would be a construct the grammar does not have.
getter/setter pairinherited
borderWidth ↔ double
getter/setter pairinherited
builder ↔ SceneWidgetBuilder?
How the widget is made, for a node that was READ. Bound by whoever holds the app's declarations — see bindExternals — because a document that arrived as data has no class to ask.
getter/setter pair
children → List<SceneNode>
no setterinherited
corner ↔ double
getter/setter pairinherited
corners ↔ SceneCorners
The corner radii. corner reads and writes them as one number — what they are for most nodes.
getter/setter pairinherited
declared ↔ SceneExtArgs?
The typed arguments, when this node was compiled rather than read. A generated type is not data, so it never crosses the editor's wire — see entry for what does.
getter/setter pair
entry → String
final
fill ↔ SceneColor?
getter/setter pairinherited
fx → Map<(Object, String), Object>
The evaluated plane: per-frame contributions composed OVER the authored values above, keyed by (writer, property) in writer-stack order — the order is normative (× does not bit-commute). Motion lanes and app Effects write here; Save never reads it; a cancelled writer clears its own entries and the authored value was never touched.
finalinherited
hashCode → int
The hash code for this object.
no setterinherited
height ↔ double?
getter/setter pairinherited
heightFills → bool
no setterinherited
maxHeight ↔ double?
getter/setter pairinherited
maxWidth ↔ double?
getter/setter pairinherited
measured ↔ SceneRect?
Laid-out rect in artboard coordinates, swept after each frame by whichever renderer measured it.
getter/setter pairinherited
minHeight ↔ double?
getter/setter pairinherited
minWidth ↔ double?
Bounds on the laid-out size, when a node has them: a card no narrower than its title, a column no wider than a line of reading. Null is no bound.
getter/setter pairinherited
name ↔ String
The node's identity — the field name in the file, and SOURCE-LEVEL ONLY. A compiled scene leaves it empty: Dart has no field-name reflection, and at runtime a node's identity is the object, which is what makes scene.headline a typed reference rather than a lookup. The editor, which parsed the source, is what fills this in.
getter/setter pairinherited
opacity ↔ double
getter/setter pairinherited
renderedArgs → Map<String, Object?>
Authored args with fx contributions folded in (an ext arg's operator is replace, in stack order) — what the guest should render.
no setter
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
typeName → String
no setteroverride
visible ↔ bool
Whether the node is drawn and laid out at all. Not opacity zero: a hidden node takes no room in a row, and a column closes over it. The boolean a component most often exposes — show the badge, hide the footer — which is why it is a property and not an effect.
getter/setter pairinherited
width ↔ double?
Size along each axis, three-valued in one field:
getter/setter pairinherited
widthFills → bool
Whether this node takes what the parent gives along each axis.
no setterinherited
x ↔ double
getter/setter pairinherited
y ↔ double
getter/setter pairinherited

Methods

animate({MotionTrack? opacity, MotionTrack? translateX, MotionTrack? translateY, MotionTrack? scale, MotionTrack? rotate, SceneExtTracks? args}) → AnimateGroup

Available on ExternalNode, provided by the ExternalNodeAnimate extension

args is the widget's generated tracks class — one slot per declared argument, so a track aimed at a parameter the widget does not take does not compile.
animate({MotionTrack? opacity, MotionTrack? translateX, MotionTrack? translateY, MotionTrack? scale, MotionTrack? rotate}) → AnimateGroup

Available on SceneNode, provided by the SceneNodeAnimate extension

buildWidget() → Object?
The widget for the moment the fx plane is parked at.
clearFxWriter(Object writer) → void
inherited
effect() → Effect
Mint an app-side fx writer. Handles are the only app surface — two independent effects on one property compose instead of colliding, and clearing one leaves the others (sketch 25).
inherited
fxRendered(String prop) → Object
The composed value the renderer should draw: authored base folded with every contribution through the derived operator table — opacity and scale multiply, translations and rotation add, everything else replaces in stack order.
inherited
hasFx(String prop) → bool
Whether any writer currently contributes to prop — the renderer asks this where the authored value's absence means something (a null fill draws no decoration; a composed fill draws one).
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
removeFx(Object writer, String prop) → void
inherited
toString() → String
A string representation of this object.
inherited
writeFx(Object writer, String prop, Object value) → void
inherited

Operators

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