Если ваши пользовательские экземпляры ItemRenderer каким-то образом имеют доступ к экземпляру List, это просто - просто зарегистрируйте свой метод обработки событий:
theList.addEventListener(YourCustomEvent.CUSTOM_EVENT, itemRendererCustomHander);
Если у вас нет прямого доступа (что я предполагаю), вы все равно можете сделать это косвенно, например, через делегата объекта класса ItemRenderer. Сделайте экземпляр подкласса EventDispatcher статическим свойством класса ItemRenderer, а в конструкторе ItemRenderer зарегистрируйте с ним обработчик событий:
public class ItemRenderer {
public static var eventDelegate:YourCustomEventDispatcher;
public function ItemRenderer() {
eventDelegate.addEventListener(YourCustomEvent.CUSTOM_EVENT, itemRendererCustomHander);
(...)
}
public function itemRendererCustomHander(event:YourCustomEvent) {
(...)
}
}
Теперь, когда вы создаете список (либо в ActionScript, либо в обработчике события инициализации вашего компонента MXML), создаете новый YourCustomEventDispatcher, присваиваете ему ссылку на список и добавляете его в ItemRenderer. YourCustomEventDispatcher регистрирует закрытый обработчик событий для YourCustomEvent с помощью theList и просто повторно отправляет его. Поскольку все экземпляры ItemRenderer, в свою очередь, зарегистрировались для YourCustomEvent с YourCustomEventDispatcher, YourCustomEvent theLists достигает всех ItemRenderers через один переход.
Это в основном реализация шаблона проектирования Observer.