interface defines a marker
Classes that support this interface declare support for event propagation
in a specialized manner.
Classes that implement this interface must dispatch events for each property
of this class and any nested classes publicly exposed as properties.
For those properties that are anonymous (complex and not strongly typed),
implementing classes provide custom support or directly use the
Implementors of this interface should use the
method to construct an
appropriate update event for dispatch.
function set myProperty(value:Object):void
var oldValue:IPropertyChangeNotifier = _myProperty;
var newValue:IPropertyChangeNotifier = value;
// Need to ensure to dispatch changes on the new property.
// Listeners use the source property to determine which object
// actually originated the event.
// In their event handler code, they can tell if an event has been
// propagated from deep within the object graph by comparing
// event.target and event.source. If they are equal, then the property
// change is at the surface of the object. If they are not equal, the
// property change is somewhere deeper in the object graph.
// need to stop listening for events from the old property
_myProperty = newValue;
// now notify anyone that is listening
var event:PropertyChangeEvent =