В AS3 больше нет списка наблюдения. Adobe Livedoc предлагает использовать шаблон Proxy с сеттером и геттером.
Вот класс, который делает то же самое, что и объект наблюдения, и его легче использовать, чем прокси:
package
{
import flash.events.Event;
import flash.events.EventDispatcher;
public class Model extends EventDispatcher
{
public static const VALUE_CHANGED:String = 'value_changed';
private var _number:Number = Number;
public function Model():void
{
trace('The model was instantiated.');
}
public function set number(newNb:Number):void
{
_number=newNb;
this.dispatchEvent(new Event(Model.VALUE_CHANGED));
}
public function get number():Number
{
return _number;
}
}
}
Переменная _number
и тип переменной могут быть заменены любым необходимым типом.
Использование:
var objectToWatch:Model = new Model();
objectToWatch.addEventListener(Model.VALUE_CHANGED, onValuedChanged);
function onValuedChanged(e:Event) {
//do what you need here
}