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.
cornerreads 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.headlinea 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
argsis 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