Самое смешное с флешевыми событиями то, что если не мудрствуя лукаво переопределить clone() следующим образом:

Код AS3:
public override function clone():Event { return this; }
То будет облом, потому что диспатчер где-то, блин, запоминает, что уже диспатчил это событие (или даже скорее всего где-то в самом событии это записывает), и со второй попытки продипатчить то же самое событие он просто откажется это делать, молча. Самое смешное, что в виду того, что чуть более чем 99% событий как правило никому не нужны, и просто игнорируются в обработчиках, типичное флеш приложение генерит их тысячи штук в минуту, а то и в секунду... Вот такое вот смелое архитектурное решение...
Что до всплытия - если уж сами организовываете все... я понимаю, стандартный интерфейс, и хочется соответсвовать, но подумайте, а нужны ли вам stopPropagation, stopImmediatePropagation, preventDefault, eventPhase и еще парочка нативных методов, которые сейчас не вспомню, которые будут добавлены в ваши классы событий? Так уж ли часто вы используете что либо из вышеописанного (и знали ли вы вообще, что такие существуют)?

Я к тому, что если уж делать все с нуля - зачем брать уже готовое, которое работает не так, как вам нужно + половина функионала избыточна? Т.е. конечно, в общем случае изобретать велосипед плохо, но если вам все равно его так или иначе изобретать, то разбирать старый чтобы создать новый?