Почему бы не создать свой собственный класс массива, который расширяет Array и реализует IEventDispatcher, переопределяет функцию push () и заставляет ее отправлять событие при вызове функции?
Так что-то вроде:
package
{
import flash.events.EventDispatcher;
import flash.events.IEventDispatcher;
public class MyArray extends Array implements IEventDispatcher
{
public static var ARRAY_PUSHED:String = "MYARRAY_ARRAY_PUSHED";
private var dispatcher:EventDispatcher;
public function MyArray(...parameters)
{
super(parameters);
dispatcher = new EventDispatcher(this);
}
override public function push(...parameters):uint
{
dispatchEvent(ARRAY_PUSHED);
super.push(parameters);
}
public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int=0, useWeakReference:Boolean=false):void
{
dispatcher.addEventListener(type, listener, useCapture, priority);
}
public function dispatchEvent(e:Event):Boolean
{
return dispatcher.dispatchEvent(e);
}
public function hasEventListener(type:String):Boolean
{
return dispatcher.hasEventListener(type);
}
public function removeEventListener(type:String, listener:Function, useCapture:Boolean=false):void
{
dispatcher.removeEventListener(type, listener, useCapture);
}
public function willTrigger(type:String):Boolean
{
return dispatcher.willTrigger(type);
}
}
}