Data binding
Syntax
MXML attributes identifying Bindable properties may contain an interpolated braces group containing an ActionScript 3 expression that is either a string literal or a member expression.
- When that braces group contains a string literal, it behaves as an escaped string that may contain braces.
- When that braces group contains a member expression, the compiler resolves that expression to a Bindable property and listens to the respective
PropertyChangeEvent
event, always computing the property on change.
Bindable meta-data
The [Bindable]
ActionScript 3 meta-data is used to indicate that either a property or all properties of a class trigger a PropertyChangeEvent
after write. The event is only dispatched if newValue !== prevValue
(notice the strict !==
operator).
The [Bindable]
meta-data may be in one of the forms:
[Bindable]
[Bindable("eventName")]
[Bindable(event="eventName")]
If the event name is omitted, it defaults to "propertyChange"
.
A setter may contain the [Bindable]
meta-data, behaving similiarly as above, indicating that the parent virtual slot contains a specific Bindable
event name.
To support [Bindable]
, the bytecode generator generates event dispatch code right after the property's assignment, whether within a destructuring assignment that affects the enclosing class's instance or a direct assignment.